@@ -7,6 +7,7 @@ import { getAppFromConfig } from '../utilities/app-utils';
77import { EjectTaskOptions } from '../commands/eject' ;
88import { NgCliWebpackConfig } from '../models/webpack-config' ;
99import { CliConfig } from '../models/config' ;
10+ import { usesServiceWorker } from '../utilities/service-worker' ;
1011import { stripBom } from '../utilities/strip-bom' ;
1112import { AotPlugin , AngularCompilerPlugin } from '@ngtools/webpack' ;
1213import { PurifyPlugin } from '@angular-devkit/build-optimizer' ;
@@ -484,7 +485,6 @@ class JsonWebpackSerializer {
484485 }
485486}
486487
487-
488488export default Task . extend ( {
489489 run : function ( runTaskOptions : EjectTaskOptions ) {
490490 const project = this . project ;
@@ -554,6 +554,16 @@ export default Task.extend({
554554 packageJson [ 'scripts' ] [ 'pree2e' ] = pree2eNpmScript ;
555555 packageJson [ 'scripts' ] [ 'e2e' ] = 'protractor ./protractor.conf.js' ;
556556
557+ if ( ! ! appConfig . serviceWorker && runTaskOptions . target === 'production' &&
558+ usesServiceWorker ( project . root ) && ! ! runTaskOptions . serviceWorker ) {
559+ packageJson [ 'scripts' ] [ 'build' ] += ' && npm run sw-config && npm run sw-copy' ;
560+ packageJson [ 'scripts' ] [ 'sw-config' ] = `ngsw-config ${ outputPath } src/ngsw-config.json` ;
561+ packageJson [ 'scripts' ] [ 'sw-copy' ] =
562+ `cpx node_modules/@angular/service-worker/ngsw-worker.js ${ outputPath } ` ;
563+
564+ packageJson [ 'devDependencies' ] [ 'cpx' ] = '^1.5.0' ;
565+ }
566+
557567 // Add new dependencies based on our dependencies.
558568 const ourPackageJson = require ( '../package.json' ) ;
559569 if ( ! packageJson [ 'devDependencies' ] ) {
0 commit comments