报错内容:You are trying to set a filename for a chunk which is (also) loaded on demand. The runtime can only handle loading of chunks which match the chunkFilename schema. Using a custom filename would fail at runtime. (cache group: defaultVendors)
module.exports = { // 此处省略其他配置项 ... optimization: { splitChunks: { chunks: 'all', minSize: 30000, //minRemainingSize: 0, maxSize: 0, minChunks: 1, maxAsyncRequests: 6, maxInitialRequests: 4, automaticNameDelimiter: '~', // 下面两个属性如果设置成两个false,打包后就不会出现verndors~前缀 // cacheGroups: { // vendors: false, // default: false // } cacheGroups: { defaultVendors: { test: /[\\/]node_modules[\\/]/, priority: -10 //filename: 'vendors' }, default: { //minChunks: 2, priority: -20, reuseExistingChunk: true //filename: 'common' } } } } ...}
- 解决办法:注释掉filename
- 原因在文档中有:
缓存组设置filename时,在chunks项配置为inital时才会生效,我们分割同步代码时,可以设置chunk为inital,这样就可以自定义filename了。否则会报错。
- chunks设置成inital,我理解的是非异步模块