Vue項(xiàng)目打包(build)時(shí),自動(dòng)打以時(shí)間命名的壓縮包方式
在打包發(fā)布Vue前端項(xiàng)目時(shí),每次都需要手動(dòng)壓縮dist文件夾,然后以時(shí)間命名,然后部署到web容器中,過(guò)程比較繁瑣。
而且不同的人員打包,命名規(guī)則也不一樣,這就導(dǎo)致服務(wù)器上一堆壓縮包文件,排序查找不方便。
這里查閱了相關(guān)資料,并且親自測(cè)試了Vue項(xiàng)目在npm run build打包時(shí),自動(dòng)打出時(shí)間命名的壓縮包。
Vue項(xiàng)目build出壓縮包,主要依賴于filemanager-webpack-plugin插件。Vue-cli2.0和3.0+的配置方式不一樣,接下來(lái)針對(duì)兩種方式創(chuàng)建的Vue項(xiàng)目如何配置打包進(jìn)行說(shuō)明。
Vue-Cli 3.0+項(xiàng)目配置build壓縮包
Vue-Cli 3.0+創(chuàng)建的Vue項(xiàng)目所有的配置都在vue.config.js文件中,
1.安裝依賴
cnpm install filemanager-webpack-plugin moment --save-dev
2.配置插件使用
在vue.config.js中引入依賴,并配置文件名規(guī)則
const FileManagerPlugin = require('filemanager-webpack-plugin') let moment = require('moment') const NAME=moment().format('YYYYMMDDHH')
在module.exports下添加
configureWebpack: { plugins: [ new FileManagerPlugin({ events: { onEnd: { delete: ['./dist/*.zip'], archive: [ {source: './dist', destination: `./dist/${NAME}.zip`}, ] } } }) ] }
如果已有,configureWebpack.plugins,則只復(fù)制中間的插件配置項(xiàng)即可。
3.完整示例
const FileManagerPlugin = require('filemanager-webpack-plugin') let moment = require('moment') const NAME=moment().format('YYYYMMDDHH') module.exports = { lintOnSave: true, publicPath: process.env.NODE_ENV === 'production' ? './' : '/', chainWebpack: config => { config .plugin('html') .tap(args => { args[0].title = '****農(nóng)業(yè)大數(shù)據(jù)平臺(tái)' return args }) }, configureWebpack: { plugins: [ new FileManagerPlugin({ events: { onEnd: { delete: ['./dist/*.zip'], archive: [ {source: './dist', destination: `./dist/${NAME}.zip`}, ] } } }) ] } }
4.執(zhí)行npm run build打包命令,就有提示了,可以查看dist文件夾下有壓縮包了
注意:YYYY-MM-DD 這種命名規(guī)則的,可能會(huì)無(wú)法打包,我使用的是"filemanager-webpack-plugin": "^7.0.0-beta.0",有漏洞,這種時(shí)間格式無(wú)法打包
Vue-Cli 2.0 項(xiàng)目配置build壓縮包
Vue-Cli 2.0的項(xiàng)目配置方式與Vue-Cli 3.0+配置方式不同,主要是只能使用filemanager-webpack-plugin3.0以下的版本
1.依賴安裝
cnpm install filemanager-webpack-plugin@^2.0.5 --save-dev cnpm install moment --save-dev
2.在webpack.prod.conf.js文件頂部引入依賴
const FileManagerPlugin = require('filemanager-webpack-plugin') let moment = require('moment') const NAME=moment().format('YYYYMMDDHH')
3.在webpack.prod.conf.js文件底部的module.exports = webpackConfig之前,添加如下代碼:
webpackConfig.plugins.push( new FileManagerPlugin({ onEnd: { delete: ['./dist/*.zip'], archive: [ {source: './dist', destination: `./dist/${NAME}.zip`}, ] } }) )
注意,這里由于FileManagerPlugin的版本不一樣,這里的配置項(xiàng)中,相對(duì)于前面**Vue-Cli 3.0+**中少了 events: {}。如果還按照前面的配置,則不會(huì)生成壓縮包。
其他
這里我只配置了打zip格式,如果需要其他格式,可以參考filemanager-webpack-plugin插件官網(wǎng)的相關(guān)配置
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vscode中vue代碼提示與補(bǔ)全沒(méi)反應(yīng)解決(vetur問(wèn)題)
這篇文章主要給大家介紹了關(guān)于vscode中vue代碼提示與補(bǔ)全沒(méi)反應(yīng)解決(vetur問(wèn)題)的相關(guān)資料,文中通過(guò)圖文將解決的方法介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03利用vue+elementUI實(shí)現(xiàn)部分引入組件的方法詳解
這篇文章主要給大家介紹了關(guān)于利用vue+elementUI實(shí)現(xiàn)部分引入組件的相關(guān)資料,以及介紹了vue引入elementUI報(bào)錯(cuò)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11vue實(shí)現(xiàn)畫(huà)筆回放canvas轉(zhuǎn)視頻播放功能
這篇文章主要介紹了vue實(shí)現(xiàn)畫(huà)筆回放,canvas轉(zhuǎn)視頻播放功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01VueJs中如何使用Teleport及組件嵌套層次結(jié)構(gòu)詳解
這篇文章主要為大家介紹了VueJs中如何使用Teleport及組件嵌套層次結(jié)構(gòu)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04vuex vue簡(jiǎn)單使用知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理了關(guān)于vuex vue簡(jiǎn)單使用知識(shí)點(diǎn)總結(jié),有需要的朋友們可以參考下。2019-08-08Vue實(shí)現(xiàn)子組件向父組件傳遞多個(gè)參數(shù)的方法
在Vue框架中,組件間的通信是一個(gè)常見(jiàn)的需求,特別是在子組件需要向父組件傳遞多個(gè)參數(shù)時(shí),合理的通信方式可以顯著提升代碼的可讀性和可維護(hù)性,本文將詳細(xì)介紹如何在Vue中實(shí)現(xiàn)子組件向父組件傳遞多個(gè)參數(shù),需要的朋友可以參考下2024-10-10