无法迁移到Webpack 4.
我提供了一个库,我的目标是拥有libs
,core
,extensions
个文件(就像我在webpack 3中设法做的那样)。
因此,我创建了3个入口点,用于导入我的所有代码(为了捆绑它)。
这是webpack config 3的一部分:
const outputFileName = `MyInfra`;
...
entry: {
"myLibs": './infra/libs",
"myCore": './infra/core",
"MyExt1": './infra/ext1",
},
output: {
path: path.join(__dirname, 'dist'),
filename: `${outputFileName}.js`,
sourceMapFilename: `maps/${outputFileName}.map.js`,
libraryTarget: 'umd',
umdNamedDefine: true
},
plugins: [
new webpack.optimize.OccurrenceOrderPlugin(),
new webpack.optimize.CommonsChunkPlugin({ names: ['myCore',
'myLibs'], filename: `${outputFileName}.js` })
],
这会创建我想要的3个文件,并且仅在libs
文件中添加webpackBootstrap
代码。
我的用户希望按此顺序在libs
中加入core
,extension
和html
。
我现在尝试迁移到splitChunks.cacheGroups
- 但没有成功。
我设法达到的最接近的结果是: (我已经更改了没有逗号的入口点名称)
optimization:{
splitChunks: {
cacheGroups:{
default: false,
myLibs: { name:"libs", test: "myLibs", chunks: "initial", enforce:true, reuseExistingChunk: true},
myCore: { name:"core", test: "myCore", chunks: "initial", enforce:true, reuseExistingChunk: true},
myExt1: { name:"ext1", test: "myExt1", chunks: "initial", enforce:true, reuseExistingChunk: true}
}
}
}
结果是6个文件,而不是3. libs.js
,myLibs.js
,core.js
,myCore.js
,ext1.js
,myExt1.js
..所有代码为my
的{{1}}个文件只有7 Kb ..如果只有3个webpackBootstrap
libs
和core
,则每个代码都会加载模块首先包括在内。
这是我遇到的一个问题..为什么我们有这2个额外的文件。为什么我需要包含所有文件才能加载模块ext1
?
然后我继续并包含了我的所有脚本并运行了一个演示应用程序。
我发现另一件事发生了变化,现在停止了工作。
在我的下一篇文章中,我提供了一个用户可以更改的配置对象,即我在我的类中导入并相应地执行操作。我注意到导入配置对象会返回用户导入的对象的不同实例。
libs
它曾经按照预期在webpack 3.6中工作..
请在这里帮助我..我在这里遇到了这两个问题。