實際工作中,發現每次發布都要清緩存,不然新改的東西就沒有辦法生效,於是就想到在打包文件名后面添加版本號,於是經過了一番百度之后,找到了辦法
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`
}
}
};
