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