背景:
目前所在公司的項目,正式環境是由后台部署,前端需要將打包后的dist文件給到后端,為了便於傳輸,每次都是先npm run build打包,再手動壓縮成zip包,給到后端,很麻煩。
所以想通過插件自動將打包后的dist文件壓縮成壓縮包,徹底解決我們的雙手~~
工具:
經過調研 zip-webpack-plugin 、webpack-zip-plugin、filemanager-webpack-plugin 這三個插件,最終采用 filemanager-webpack-plugin
安裝:
npm install filemanager-webpack-plugin --save-dev
github地址:https://github.com/gregnb/filemanager-webpack-plugin
安裝過程報錯如下:

看到報錯信息,我們開始從下列提示着手
filemanager-webpack-plugin@3.0.0 requires a peer of webpack@^4 || ^5 but none is installed. You must install peer dependencies yourself.
信息顯示:filemanager-webpack-plugin@3.0.0需要webpack@^4 | | ^5的對等方,但未安裝
猜想應該是filemanager-webpack-plugin@3.0.0需要的webpack版本與系統不匹配,
經過一番查找也沒有找到filemanager-webpack-plugin@3.0.0需要的對等webpack版本是,
綜合考慮,決定降低filemanager-webpack-plugin版本 注意:如果不報錯,不需要采取降級處理
在package.json的 devDependencies 加入 "filemanager-webpack-plugin": "2.0.5",並重新 cnpm install ,安裝成功
配置:
在vue.config.js添加如下代碼
const FileManagerPlugin = require('filemanager-webpack-plugin')
module.exports = {
...
configureWebpack: (config) => {
// 為生產模式添加壓縮插件
if (process.env.NODE_ENV === 'production') {
// 將打包后的dist文件自動壓縮成zip包
config.plugins.push(
new FileManagerPlugin({
onEnd: {
// delete: [ './dist.zip'],
archive: [{ source: './dist', destination: './dist.zip' }]
}
}))}}}
運行:
直接 npm run build 即可看到項目根目錄生成一個 dist.zip 壓縮包
