实际工作中,发现每次发布都要清缓存,不然新改的东西就没有办法生效,于是就想到在打包文件名后面添加版本号,于是经过了一番百度之后,找到了办法
1、先定义一个时间戳,
const Version = new Date().getTime();
2、在打包配置中加上时间戳
module.exports = { configureWebpack: {/*打包配置版本号*/ output: {/*模块名称+时间戳*/ filename: `[name].${Version}.js`, chunkFilename: `[name].${Version}.js` } } };
这个是我们自己目前在做的项目的配置,用vue-cli3.0搭建的,然后最外层添加vue.config.js配置文件,里面的配置可以覆盖默认配置,下面附上完整代码,以便后面开发方便使用
const webpack = require("webpack");
const Version = new Date().getTime();
module.exports = {
/* 部署生产环境和开发环境下的URL:可对当前环境进行区分,baseUrl 从 Vue CLI 3.3 起已弃用,要使用publicPath */
/* baseUrl: process.env.NODE_ENV === 'production' ? './' : '/' */
// publicPath: process.env.NODE_ENV === "production" ? "/public/" : "./",
publicPath: "./",
/* 输出文件目录:在npm run build时,生成文件的目录名称 */
outputDir: "dist",
/* 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录 */
assetsDir: "assets",
/* 是否在构建生产包时生成 sourceMap 文件,false将提高构建速度 */
productionSourceMap: false,
/* 默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存,你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变) */
filenameHashing: false,
/* 代码保存时进行eslint检测 */
lintOnSave: true,
/* webpack-dev-server 相关配置 */
devServer: {
/* 自动打开浏览器 */
open: true,
/* 设置为0.0.0.0则所有的地址均能访问 */
host: "0.0.0.0",
port: 8083,
https: false,
hotOnly: false
},
configureWebpack: {
//引入jquery
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"windows.jQuery": "jquery"
})
],
/*打包配置版本号*/
output: {/*模块名称+时间戳*/
filename: `[name].${Version}.js`,
chunkFilename: `[name].${Version}.js`
}
}
};