我想将我的供应商代码分成两块,一个包含所有角度库,另一个包含其他所有内容。
我的 Angular 应用程序有一个入口点,并且设置如下:
entry: {
app: './path_to/app.js',
vendor: ['jquery', 'moment', 'numeral'],
'vendor.angular': ['angular', 'angular-route', 'angular-numeraljs']
}
然后我使用 CommonsChunkPlugin 来配置另外两个包:
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
chunks: ['app'],
warnings: false,
filename: 'vendor.bundle.js'
})
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor.angular',
chunks: ['app'],
warnings: false,
filename: 'vendor.angular.bundle.js'
})
这会生成 3 个文件:
Version: webpack 1.13.1
Time: 12719ms
Asset Size Chunks Chunk Names
app.bundle.js 19.2 kB 0 [emitted] app
vendor.bundle.js 484 kB 1 [emitted] vendor
vendor.angular.bundle.js 652 kB 2 [emitted] vendor.angular
[0] multi vendor.angular 124 bytes {2} [built]
[0] multi vendor 88 bytes {1} [built]
+ 124 hidden modules
app.bundle.js 只包含我的应用程序代码。
vendor.bundle.js 包含所有第 3 方库,不包括有角度的东西
vendor.angular.bundle.js 包含所有有角度的东西和我所有已经在 vendor.bundle.js 中的第 3 方库。
无论如何,只有在 vendor.angular.bundle.js 中捆绑了角度模块,而不自动包含其他 3rd 方库?