@@ -7,6 +7,7 @@ import { getAppFromConfig } from '../utilities/app-utils';
7
7
import { EjectTaskOptions } from '../commands/eject' ;
8
8
import { NgCliWebpackConfig } from '../models/webpack-config' ;
9
9
import { CliConfig } from '../models/config' ;
10
+ import { usesServiceWorker } from '../utilities/service-worker' ;
10
11
import { stripBom } from '../utilities/strip-bom' ;
11
12
import { AotPlugin , AngularCompilerPlugin } from '@ngtools/webpack' ;
12
13
import { PurifyPlugin } from '@angular-devkit/build-optimizer' ;
@@ -484,7 +485,6 @@ class JsonWebpackSerializer {
484
485
}
485
486
}
486
487
487
-
488
488
export default Task . extend ( {
489
489
run : function ( runTaskOptions : EjectTaskOptions ) {
490
490
const project = this . project ;
@@ -554,6 +554,16 @@ export default Task.extend({
554
554
packageJson [ 'scripts' ] [ 'pree2e' ] = pree2eNpmScript ;
555
555
packageJson [ 'scripts' ] [ 'e2e' ] = 'protractor ./protractor.conf.js' ;
556
556
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
+
557
567
// Add new dependencies based on our dependencies.
558
568
const ourPackageJson = require ( '../package.json' ) ;
559
569
if ( ! packageJson [ 'devDependencies' ] ) {
0 commit comments