2020-11-29 06:56:10
动态导入JS脚本时,可通过在URL参数中添加时间戳或调整构建工具配置来避免缓存冲突。以下是具体方法及说明:
方法一:URL参数添加时间戳优势:无需修改构建工具配置,适用于简单场景或快速调试。
注意事项:
时间戳参数需动态生成(如使用Date.now()),确保每次请求的URL唯一。
若脚本路径已包含查询参数(如?key=value),需用&连接新参数(如?key=value&v=${Date.now()})。
某些服务器可能忽略未识别的查询参数,需测试验证。
适用场景:使用Webpack、Vite等工具时,通过配置禁用或优化缓存机制。
Webpack配置:
在配置文件中设置cache: false以禁用缓存:module.exports = { // ...其他配置 cache: false,};
效果:每次构建均生成全新文件,避免浏览器加载旧版本。
注意:禁用缓存可能增加构建时间,适合开发环境或需要强制更新的场景。
Vite配置:
Vite的缓存机制较复杂,需参考官方文档调整依赖预打包缓存。例如:
开发环境下,Vite默认启用缓存以提升性能,可通过server.force选项强制刷新。
生产构建时,使用build.rollupOptions.output.entryFileNames等配置控制输出文件名,结合哈希值(如[name].[hash].js)实现版本控制。
示例(vite.config.js):export default { build: { rollupOptions: { output: { entryFileNames: '[name].[hash].js', }, }, },};
通过上述方法,可有效解决动态导入JS脚本时的缓存冲突问题,确保加载最新版本。