优化理由:
项目打包后,rollup会将所有js相关的部分打包到一个.js文件中,当项目代码每次更新迭代,这个.js文件的指纹hash都将变化,浏览器会重新获取此文件来实现更新。但,实际我们有一部分代码,可能是node_module中的,可能是自研公共组件、逻辑的代码几乎不会有更新迭代,所以我们可以将这一部分代码的打包独立出新文件,减少浏览器的HTTP请求传输的数据量。
import { defineConfig } from 'vite'
// https://vitejs.dev/config/
export default defineConfig({
server: {
...
},
build: {
output: {
rollupOptions: {
manualChunks: {
"static": ['lodash', 'axios', 'vue'], // 匹配包名
},
manualChunks() {
if (id.includes('node_modules')) { // 匹配路径
return 'vendor';
}
}
}
}
}
})
评论区