@@ -15,6 +15,7 @@ const ManifestPlugin = require('webpack-manifest-plugin');
1515const InlineManifestWebpackPlugin = require ( 'inline-manifest-webpack-plugin' ) ;
1616const autoprefixer = require ( 'autoprefixer' ) ;
1717const ChunkManifestPlugin = require ( 'chunk-manifest-webpack-plugin' ) ;
18+ const ngcWebpack = require ( 'ngc-webpack' ) ;
1819
1920const helpers = require ( './helpers' ) ;
2021const TITLE = 'My MEAN Website' ;
@@ -24,11 +25,13 @@ const TEMPLATE_ADMIN_PATH = './src/admin.ejs';
2425const TEMPLATE_HTML = 'index.html' ;
2526const TEMPLATE_ADMIN_HTML = 'admin.html' ;
2627
28+ const AOT = helpers . hasNpmFlag ( 'aot' ) ;
29+
2730module . exports = {
2831 entry : {
2932 polyfills : './src/polyfills.ts' ,
30- app : './src/main.ts' ,
31- admin : './src/admin.ts'
33+ app : AOT ? './src/main.aot.ts' : './src/main.ts' ,
34+ admin : AOT ? './src/admin.aot. ts' : './src/admin.ts' ,
3235 } ,
3336 resolve : {
3437 descriptionFiles : [ 'package.json' ] ,
@@ -43,29 +46,49 @@ module.exports = {
4346 loader : 'tslint-loader' ,
4447 exclude : [ / \. ( s p e c | e 2 e ) \. t s $ / , / n o d e _ m o d u l e s / ]
4548 } ,
49+
4650 {
4751 test : / \. t s $ / ,
48- loaders : 'awesome-typescript-loader' ,
49- query : {
50- forkChecker : true
51- } ,
52- exclude : [ / \. ( s p e c | e 2 e ) \. t s $ / ]
53- } ,
54- {
55- test : / \. t s $ / ,
56- loaders : [
52+ use : [
53+ '@angularclass/hmr-loader' ,
54+ 'awesome-typescript-loader?{configFileName: "tsconfig-aot.json"}' ,
5755 'angular2-template-loader' ,
58- '@angularclass/hmr-loader'
59- ] ,
60- exclude : [ / \. ( s p e c | e 2 e ) \. t s $ / ]
61- } ,
62- {
63- test : / \. t s $ / ,
64- loaders : [
65- 'angular-router-loader' // lazy Loading
56+ {
57+ loader : 'ng-router-loader' ,
58+ options : {
59+ loader : 'async-system' ,
60+ genDir : 'compiled' ,
61+ aot : AOT
62+ }
63+ }
6664 ] ,
6765 exclude : [ / \. ( s p e c | e 2 e ) \. t s $ / ]
6866 } ,
67+
68+
69+ // {
70+ // test: /\.ts$/,
71+ // loaders: 'awesome-typescript-loader',
72+ // query: {
73+ // forkChecker: true
74+ // },
75+ // exclude: [/\.(spec|e2e)\.ts$/]
76+ // },
77+ // {
78+ // test: /\.ts$/,
79+ // loaders: [
80+ // 'angular2-template-loader',
81+ // '@angularclass/hmr-loader'
82+ // ],
83+ // exclude: [/\.(spec|e2e)\.ts$/]
84+ // },
85+ // {
86+ // test: /\.ts$/,
87+ // loaders: [
88+ // 'angular-router-loader' // lazy Loading
89+ // ],
90+ // exclude: [/\.(spec|e2e)\.ts$/]
91+ // },
6992 {
7093 test : / \. h t m l $ / ,
7194 loader : 'raw-loader'
@@ -198,7 +221,14 @@ module.exports = {
198221 formattersDirectory : "./node_modules/tslint-loader/formatters/"
199222 }
200223 }
224+ } ) ,
225+
226+ new ngcWebpack . NgcWebpackPlugin ( {
227+ disabled : ! AOT ,
228+ tsConfig : helpers . root ( 'tsconfig-aot.json' ) ,
229+ resourceOverride : helpers . root ( 'config/resource-override.js' )
201230 } )
231+
202232 ] ,
203233 node : {
204234 global : true ,
0 commit comments