vendors: { test: /[/]node_modules[/]/, name: 'chunk-vendors', chunks: 'all', priority: -10, enforce: true },选项指定了匹配app.js和chunk-vendors.js模块
时间: 2024-02-01 09:04:48 浏览: 73
这里的 `vendors` 配置项只匹配 `node_modules` 目录下的模块,不包括应用程序代码。因此,它不会匹配 `app.js` 模块,也不会与 `chunk-vendors.js` 模块重复匹配。
这个配置项只会将 `node_modules` 目录下的模块打包到 `chunk-vendors.js` 文件中,而应用程序代码会打包到 `app.js` 文件中。这样可以让浏览器更好地缓存和优化第三方库和应用程序代码。
`chunks` 选项指定了哪些代码块需要被分割,这里设置为 `all`,表示所有的代码块都要被分割。`priority` 选项指定了分割的优先级,这里设置为 `-10`,表示优先级较高,会先被分割。`enforce` 选项指定了是否强制执行分割,这里设置为 `true`,表示强制执行。
相关问题
vendors: { test: /[\\/]node_modules[\\/]/, name: 'chunk-vendors', chunks: 'all', priority: -10, enforce: true },选项指定了匹配多个模块
是的,`test` 选项可以匹配多个模块。在这个配置中,`test` 选项使用了正则表达式 `/[\\/]node_modules[\\/]/`,表示匹配所有位于 `node_modules` 目录下的模块。
在这个配置中,如果一个模块位于 `node_modules` 目录下,那么它就会被打包到 `chunk-vendors.js` 文件中,否则就会被打包到 `app.js` 文件中。这样可以将第三方库和应用程序代码分开打包,方便浏览器进行缓存和优化。
`chunks` 选项指定了哪些代码块需要被分割,这里设置为 `all`,表示所有的代码块都要被分割。`priority` 选项指定了分割的优先级,这里设置为 `-10`,表示优先级较高,会先被分割。`enforce` 选项指定了是否强制执行分割,这里设置为 `true`,表示强制执行。
怎么分割chunk-vendors.js代码大小
可以通过以下方式来分割 `chunk-vendors.js` 文件的大小:
```javascript
module.exports = {
configureWebpack: {
optimization: {
splitChunks: {
chunks: 'initial',
cacheGroups: {
vendors: {
test: /[\\/]node_modules[\\/]/,
name: 'chunk-vendors',
priority: -10,
chunks: 'all',
minSize: 10000,
maxSize: 250000,
enforce: true
}
}
}
}
}
}
```
在 `cacheGroups` 中的 `vendors` 配置项中,可以使用 `minSize` 和 `maxSize` 选项来限制被分割出来的代码块的大小范围。这里的意思是将 `node_modules` 中的模块分割出来,如果模块大小小于 `10000` 字节,就不会被分割,如果大于 `250000` 字节,就会被强制分割成一个新的代码块。这样可以避免将过小或过大的代码块打包到 `chunk-vendors.js` 文件中,从而优化浏览器加载性能。
需要注意的是,`minSize` 和 `maxSize` 选项的值应该根据具体的应用场景来设置。如果设置过小,就会导致过多的小文件,增加了网络请求的开销;如果设置过大,就会导致较慢的加载时间,因为浏览器需要下载较大的文件。
阅读全文