我目前正在大型商业应用程序上从v1.2 => v4.1升级WP。我遇到一个问题,其中splitChunks正在为每个入口点创建我的商店的多个实例(我们正在使用的商店非常老旧和过时,但这超出了我的控制ATM)。
我看到的问题是,运行时代码被添加到多次执行同一模块的每个入口点-我在沙盒环境中成功地重新创建了该问题,并且当我在配置中添加了一个runtimeChunk时,提取了该代码将运行时代码合并到一个文件中并解决了我的问题-但是,当我将其应用于应用程序时,创建了一个运行时文件,但是runtimeChunk也保留在每个入口点中,因此问题仍然存在。以下是我当前配置的示例。
module.exports = {
entry: {
app: [
'babel-polyfill',
'whatwg-fetch',
'./src/app/app'
],
testEntry: './src/modules/testEntry.js',
},
output: {
pathinfo: true,
publicPath: '/',
chunkFilename: '[id].js'
},
module: {
rules: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel-loader'
},
]
},
optimization: {
splitChunks: {
cacheGroups: {
commons: {
name: 'commons',
filename: "js/[name].js",
test: /\.js(x)?$/,
chunks: "initial",
minChunks: 1
}
}
},
runtimeChunk: {
name: 'shared',
},
},
mode: 'development',
devtool: 'eval',
devServer: {
contentBase: __dirname,
port: 5000
},
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html'
})
]
};
我是否可以强制运行时代码只执行一次?
编辑更新
我现在已更新到webpack 4.17(最新),现在很奇怪-当我使用单个运行时选项时-我的输入包未生成