本文整理汇总了TypeScript中@angular/service-worker/config.Generator类的典型用法代码示例。如果您正苦于以下问题:TypeScript Generator类的具体用法?TypeScript Generator怎么用?TypeScript Generator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Generator类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: augmentAppWithServiceWorker
export function augmentAppWithServiceWorker(projectRoot: string, appRoot: string,
outputPath: string, baseHref: string): Promise<void> {
// Path to the worker script itself.
const workerPath = resolveProjectModule(projectRoot, '@angular/service-worker/ngsw-worker.js');
const safetyPath = path.join(path.dirname(workerPath), 'safety-worker.js');
const configPath = path.resolve(appRoot, 'ngsw-config.json');
if (!fs.existsSync(configPath)) {
throw new Error(oneLine`Error: Expected to find an ngsw-config.json configuration
file in the ${appRoot} folder. Either provide one or disable Service Worker
in .angular-cli.json.`);
}
const config = fs.readFileSync(configPath, 'utf8');
const Generator = require('@angular/service-worker/config').Generator;
const gen = new Generator(new CliFilesystem(outputPath), baseHref);
return gen
.process(JSON.parse(config))
.then((output: Object) => {
const manifest = JSON.stringify(output, null, 2);
fs.writeFileSync(path.resolve(outputPath, 'ngsw.json'), manifest);
// Copy worker script to dist directory.
const workerCode = fs.readFileSync(workerPath);
fs.writeFileSync(path.resolve(outputPath, 'ngsw-worker.js'), workerCode);
// If @angular/service-worker has the safety script, copy it into two locations.
if (fs.existsSync(safetyPath)) {
const safetyCode = fs.readFileSync(safetyPath);
fs.writeFileSync(path.resolve(outputPath, 'worker-basic.min.js'), safetyCode);
fs.writeFileSync(path.resolve(outputPath, 'safety-worker.js'), safetyCode);
}
});
}
示例2: augmentAppWithServiceWorker
export function augmentAppWithServiceWorker(projectRoot: string, appRoot: string,
outputPath: string, baseHref: string): Promise<void> {
const nodeModules = path.resolve(projectRoot, 'node_modules');
const swModule = path.resolve(nodeModules, '@angular/service-worker');
// Path to the worker script itself.
const workerPath = path.resolve(swModule, 'ngsw-worker.js');
const configPath = path.resolve(appRoot, 'ngsw-config.json');
if (!fs.existsSync(configPath)) {
throw new Error(stripIndent`Expected to find an ngsw-config.json configuration file in the
application root. Either provide one or disable Service Worker
build support in angular-cli.json.`);
}
const config = fs.readFileSync(configPath, 'utf8');
const Generator = require('@angular/service-worker/config').Generator;
const gen = new Generator(new CliFilesystem(outputPath), baseHref);
return gen
.process(JSON.parse(config))
.then((output: Object) => {
const manifest = JSON.stringify(output, null, 2);
fs.writeFileSync(path.resolve(outputPath, 'ngsw.json'), manifest);
// Copy worker script to dist directory.
const workerCode = fs.readFileSync(workerPath);
fs.writeFileSync(path.resolve(outputPath, 'ngsw-worker.js'), workerCode);
});
}
示例3:
(async() => {
const control = await gen.process(configParsed);
await filesystem.write('/ngsw.json', JSON.stringify(control, null, 2));
})();