如何定义 webpack CommonsChunkPlugin 的入口点?
How to define entry point for webpack CommonsChunkPlugin?
在我的 webpack
配置中,我将条目定义为这样 -
entry: [
'webpack-hot-middleware/client',
'./src/app.jsx'
],
我意识到生成的包大小约为 8 mb。
所以我决定将供应商 javascript 文件拆分成单独的块,即 bundle.vendor.js
我知道我必须为此使用 CommonsChunkPlugin 并将条目更改为这样的内容
entry: {
app: './src/app.js',
vendors: './src/vendors.js'
}
但不知道如何更改我现有的条目配置,目前设置为
entry: [
'webpack-hot-middleware/client',
'./src/app.jsx'
],
1.你需要告诉 Webpack 你的入口点,在这种情况下,你可以将 vendors 入口定义为一个数组依赖项。像这样:
entry: {
app: path.join(__dirname, 'path/to/app.jsx'), // prefer using absolute paths to avoid problems
vendors: ['jquery', 'lodash']
}
2。你需要告诉 Webpack 你的哪些条目应该被优化:
请注意,您在插件的配置 "names" 中传递了第二个字符串。它是将由 Webpack 生成的另一个文件的名称。它将负责告诉浏览器如何正确处理依赖项,并将包含在您的应用程序和供应商脚本标记之前。
plugins : [
new webpack.optimize.CommonsChunkPlugin({
names: ['vendors', 'manifest']
})
]
如果需要,我这里有一个repo with a working example of this。 CommonsChunk 部分在 prod 配置中。
在我的 webpack
配置中,我将条目定义为这样 -
entry: [
'webpack-hot-middleware/client',
'./src/app.jsx'
],
我意识到生成的包大小约为 8 mb。
所以我决定将供应商 javascript 文件拆分成单独的块,即 bundle.vendor.js
我知道我必须为此使用 CommonsChunkPlugin 并将条目更改为这样的内容
entry: {
app: './src/app.js',
vendors: './src/vendors.js'
}
但不知道如何更改我现有的条目配置,目前设置为
entry: [
'webpack-hot-middleware/client',
'./src/app.jsx'
],
1.你需要告诉 Webpack 你的入口点,在这种情况下,你可以将 vendors 入口定义为一个数组依赖项。像这样:
entry: {
app: path.join(__dirname, 'path/to/app.jsx'), // prefer using absolute paths to avoid problems
vendors: ['jquery', 'lodash']
}
2。你需要告诉 Webpack 你的哪些条目应该被优化: 请注意,您在插件的配置 "names" 中传递了第二个字符串。它是将由 Webpack 生成的另一个文件的名称。它将负责告诉浏览器如何正确处理依赖项,并将包含在您的应用程序和供应商脚本标记之前。
plugins : [
new webpack.optimize.CommonsChunkPlugin({
names: ['vendors', 'manifest']
})
]
如果需要,我这里有一个repo with a working example of this。 CommonsChunk 部分在 prod 配置中。