我希望将我的供应商代码分成两个部分,一个包含所有Angular库,另一个包含其他所有内容。
我的Angular应用程序有一个入口点,并设置如下:
我的Angular应用程序有一个入口点,并设置如下:
entry: {
app: './path_to/app.js',
vendor: ['jquery', 'moment', 'numeral'],
'vendor.angular': ['angular', 'angular-route', 'angular-numeraljs']
}
我随后使用CommonsChunkPlugin来配置另外两个bundle:
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 包含了除了 Angular 相关的所有第三方库。
vendor.angular.bundle.js 同时包含了所有 Angular 相关的内容和 vendor.bundle.js 中已经存在的所有第三方库。
是否有任何方法可以仅将 Angular 模块捆绑到 vendor.angular.bundle.js 中,而不自动包含其他第三方库?
angular_stuff
而不是vendor.angular
会发生什么?这只是一个猜测,但或许点符号导致 webpack 包含了供应商的内容。 - andzepCommonsChunkPlugin
块的顺序……它是否会改变文件大小?也许是因为第一个优化的公共块具有'app'块,然后第二个自动包含第一个。 - andzepwebpack.optimize.UglifyJsPlugin
......抱歉多次尝试和错误 :-)....好的,我会离开一段时间。在此期间祝你好运。 - andzep