Angular AOT与ngTools/webpack一起使用惰性模块创建多余的无用块
我有生成以下捆绑文件的Web包:Angular AOT与ngTools/webpack一起使用惰性模块创建多余的无用块,angular,webpack,angular-aot,Angular,Webpack,Angular Aot,我有生成以下捆绑文件的Web包: main.prod.js(好) vendors.prod.js(良好) 0.chunk.prod.js(错误-这是延迟加载模块的捆绑包) 1.chunk.prod.js(Bad-这是延迟加载模块的捆绑包) 问题是我希望延迟加载的模块(例如:0.chunk.prod.js)成为main.prod.js包的一部分 webpack.common.js webpack.prod.js 好奇的是:如果你想将延迟加载的模块捆绑到主脚本中,为什么要使用它们呢?我以前也用g
- main.prod.js(好)
- vendors.prod.js(良好)
- 0.chunk.prod.js(错误-这是延迟加载模块的捆绑包)
- 1.chunk.prod.js(Bad-这是延迟加载模块的捆绑包)
好奇的是:如果你想将延迟加载的模块捆绑到主脚本中,为什么要使用它们呢?我以前也用gulp+rollup做过同样的事情,性能很好,而且处理一个捆绑包很简单。也许webpack有一种更简单的方法来处理这个问题,但我没有找到它?我这样问是因为我认为延迟加载的主要点是,在应用程序使用期间,脚本在被请求之前不会加载,这是一种限制初始下载大小和解析时间的方法。既然你放弃了大部分好处,我只是想知道为什么不使用常规(而不是惰性)路线?它们的设置更简单,更易于维护。
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;
}
})
]
};
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
}
)
]
});