Svelte(非SvelteKit)+Vite项目构建缓存与增量构建问题
Vite构建缓存与增量重建优化方案
一、启用构建缓存提升重复构建速度
Vite 2.x及以上版本默认开启生产构建缓存,缓存文件存放在node_modules/.vite目录中。但作为大型项目的子模块,可能存在缓存未被正确复用的情况,你可以显式声明配置确保缓存生效:
在build配置块中添加cache: true(虽默认值为true,显式声明更稳妥):
build: { cache: true, // 显式启用Vite构建缓存 // 原有其他配置... }
另外你已配置rollupOptions.cache: true,这是Rollup级别的缓存,与Vite自身的构建缓存配合使用,能进一步提升重复构建效率。
验证缓存是否生效:运行构建时查看终端日志,若出现cached modules相关输出,说明缓存已正常工作。
二、实现watch模式下的增量重建
使用vite build --watch本应支持增量构建,全量重建通常由配置或插件问题导致,可按以下方式调整:
- 启用Svelte增量编译
在svelte插件配置中添加增量编译选项:plugins: [ svelte({ compilerOptions: { incremental: true // 启用Svelte增量编译 } }), i18n() ], - 优化Rollup监听范围
在rollupOptions中配置watch规则,排除无需监听的目录,避免无关文件改动触发全量构建:rollupOptions: { cache: true, watch: { exclude: ['node_modules/**', 'assets/**'] // 排除无需监听的目录 }, // 原有output配置... } - 避免文件命名冲突
当前output配置中,入口文件与chunk文件命名规则一致,易出现文件覆盖触发额外重打包。建议添加短哈希后缀(watch模式下不影响调试):output: { entryFileNames: `assets/[name].[hash:8].js`, chunkFileNames: `assets/[name].[hash:8].js`, assetFileNames: `assets/[name].[hash:8].[ext]` } - 检查i18n插件兼容性
部分i18n插件对增量构建支持不佳,可临时注释i18n插件测试。若增量恢复正常,需查看该插件文档寻找watch模式下的优化配置。
内容的提问来源于stack exchange,提问作者munHunger
相关产品推荐
相关产品推荐

