背景:
目前所在公司的项目,正式环境是由后台部署,前端需要将打包后的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 压缩包