使用ngTools / webpack的Angular AOT使用延迟模块创建额外的不需要的块

时间:2017-07-12 01:37:14

标签: angular webpack angular-aot

我有webpack生成以下捆绑文件:

  • main.prod.js(好)
  • vendors.prod.js(好)
  • 0.chunk.prod.js(错误 - 这是一个延迟加载模块的包)
  • 1.chunk.prod.js(错误 - 这是一个延迟加载模块的包)

问题是我希望延迟加载的模块(例如:0.chunk.prod.js)成为main.prod.js包的一部分。

webpack.common.js

module.exports = {
   entry: {
       'polyfills': './staticContent/polyfills.ts',
       'main': ["./path/to/main.ts" ]
    },
    resolve: {
        extensions: ['.ts', '.js'],
        alias: { }
    },
    module: {
      loaders: [
          {
              test: /\.html$/,
              use: 'html-loader?minimize=false',
          },
      ]
  },
  plugins: [
        new webpack.optimize.CommonsChunkPlugin({
           name: "vendors",
           minChunks: function (module) {
             return module.context && module.context.indexOf("node_modules")!== -1;
          }
       })
  ]
};

webpack.prod.js

module.exports = webpackMerge(commonConfig, {
    output: {
        path: __dirname + '/bundles',
        filename: '[name].prod.js',
        chunkFilename: '[id].chunk.prod.js'
    },
    module: {
        loaders: [
            { test: /\.ts$/, loaders: ['@ngtools/webpack'] }
        ]
    },
    plugins: [
        new AotPlugin({
            tsConfigPath: './tsconfig.aot.json',
            entryModule: 'path/to/app.module#AppModule'
        }),
        new ExtractTextPlugin({
            filename: "[name].prod.css"
        }),
        new webpack.optimize.UglifyJsPlugin({
                minimize: true,
                compress: {
                    warnings: false
                },
                output: {
                    comments: false
                },
                sourceMap: false
            }
        )
    ]
});

0 个答案:

没有答案