本文整理匯總了TypeScript中polymer-build.PolymerProject.addPrefetchLinks方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript PolymerProject.addPrefetchLinks方法的具體用法?TypeScript PolymerProject.addPrefetchLinks怎麽用?TypeScript PolymerProject.addPrefetchLinks使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類polymer-build.PolymerProject
的用法示例。
在下文中一共展示了PolymerProject.addPrefetchLinks方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: build
export async function build(
options: ProjectBuildOptions,
polymerProject: PolymerProject): Promise<void> {
const buildName = options.name || 'default';
const optimizeOptions:
OptimizeOptions = {css: options.css, js: options.js, html: options.html};
// If no name is provided, write directly to the build/ directory.
// If a build name is provided, write to that subdirectory.
const buildDirectory = path.join(mainBuildDirectoryName, buildName);
logger.debug(`"${buildDirectory}": Building with options:`, options);
// Fork the two streams to guarentee we are working with clean copies of each
// file and not sharing object references with other builds.
const sourcesStream = forkStream(polymerProject.sources());
const depsStream = forkStream(polymerProject.dependencies());
const htmlSplitter = new HtmlSplitter();
let buildStream: NodeJS.ReadableStream = pipeStreams([
mergeStream(sourcesStream, depsStream),
htmlSplitter.split(),
getOptimizeStreams(optimizeOptions),
htmlSplitter.rejoin()
]);
const compiledToES5 = !!(optimizeOptions.js && optimizeOptions.js.compile);
if (compiledToES5) {
buildStream = buildStream.pipe(polymerProject.addBabelHelpersInEntrypoint())
.pipe(polymerProject.addCustomElementsEs5Adapter());
}
const bundled = !!(options.bundle);
async function getPolymerVersion(): Promise<string> {
return new Promise<string>(
(resolve, _reject) =>
bower.commands.list({}, {offline: true})
.on('end',
(result: any) => {
if (result && result.dependencies &&
result.dependencies.polymer &&
result.dependencies.polymer.pkgMeta &&
result.dependencies.polymer.pkgMeta.version) {
resolve(result.dependencies.polymer.pkgMeta.version);
} else {
resolve('');
}
})
.on('error', (oops: Error) => {
resolve('');
console.warn(oops.message);
}));
}
if (bundled) {
// Polymer 1.x and Polymer 2.x deal with relative urls in dom-module
// templates differently. Polymer CLI will attempt to provide a sensible
// default value for the `rewriteUrlsInTemplates` option passed to
// `polymer-bundler` based on the version of Polymer found in the project's
// folders. We will default to Polymer 1.x behavior unless 2.x is found.
const polymerVersion = await getPolymerVersion();
const bundlerOptions = {
rewriteUrlsInTemplates: !polymerVersion.startsWith('2.')
};
if (typeof options.bundle === 'object') {
Object.assign(bundlerOptions, options.bundle);
}
buildStream = buildStream.pipe(polymerProject.bundler(bundlerOptions));
}
if (options.insertPrefetchLinks) {
buildStream = buildStream.pipe(polymerProject.addPrefetchLinks());
}
buildStream.once('data', () => {
logger.info(`(${buildName}) Building...`);
});
if (options.basePath) {
let basePath = options.basePath === true ? buildName : options.basePath;
if (!basePath.startsWith('/')) {
basePath = '/' + basePath;
}
if (!basePath.endsWith('/')) {
basePath = basePath + '/';
}
buildStream = buildStream.pipe(polymerProject.updateBaseTag(basePath));
}
if (options.addPushManifest) {
buildStream = buildStream.pipe(polymerProject.addPushManifest());
}
// Finish the build stream by piping it into the final build directory.
buildStream = buildStream.pipe(dest(buildDirectory));
// If a service worker was requested, parse the service worker config file
// while the build is in progress. Loading the config file during the build
// saves the user ~300ms vs. loading it afterwards.
const swPrecacheConfigPath = path.resolve(
//.........這裏部分代碼省略.........