我有一个带有两个入口点的应用程序,该应用程序使用代码拆分,因此将两个捆绑软件中使用的所有依赖项都拉到一个共享的供应商捆绑软件中。 Webpack似乎通过检查路径和文件名匹配来确定模块依赖项是否相同。
如果两个依赖项都散列到同一件事上,是否有办法将两个依赖项标记为相同?因此该文件仅在供应商捆绑包中包含一次。
例如,如果我有一个结构类似的应用
app
subapp1
node_modules
react
- entry1.js
subapp2
node_modules
react
- entry2.js
entry1.js
和entry2.js
都具有import React from 'react'
(并且都是同一版本的react)
和类似的webpack配置
module.exports = {
entry: {
subapp1: './subapp1/entry1.js',
subapp2: './subapp2/entry2.js',
},
output: {
path: path.resolve(__dirname, 'build'),
filename: '[name].js'
},
optimization: {
splitChunks: {
cacheGroups: {
vendor: {
name: 'vendor',
chunks: 'all',
test: /[\\/]node_modules[\\/]/,
}
}
}
}
};
然后我的供应商捆绑包中目前有两个react副本,有没有办法只包含一次?