uni-app编译时删除指定文件夹

uni-app 编译到微信小程序时,static 里有些资源只给 App 用,打进 mp-weixin 包会白占体积,上传审核也拖慢。想在编译完成后自动删掉指定目录,可以用 webpack 插件在产物生成后再清一遍。
remove-files-webpack-plugin
原理就是在项目中添加一个webpack插件,然后配置插件
先装依赖:npm i remove-files-webpack-plugin -D。插件在 after 阶段删文件,不会动源码,只动 unpackage/dist 下的输出。
项目根目录新增vue.config.js
下面示例删掉微信小程序产物里的 static/APPPIC(按自己路径改 include):
const path = require('path')
const RemovePlugin = require('remove-files-webpack-plugin')
module.exports = {
configureWebpack: {
plugins: [
new RemovePlugin({
after: {
root: path.join(__dirname, './unpackage'),
include: [
path.join(__dirname, 'unpackage/dist', process.env.NODE_ENV === 'production' ?
'build' : 'dev', process.env
.UNI_PLATFORM, './mp-weixin/static/APPPIC')
],
trash: false
}
})
]
}
}
root 指向 unpackage,include 里用 NODE_ENV 和 UNI_PLATFORM 区分 dev/build、各端路径,删错目录会把整包打废,改路径后先本地编译看一眼 unpackage/dist 再提交。trash: false 表示直接删除不进回收站。
部分webpack类似的webpack插件
copy-webpack-plugin — 编译时拷贝静态资源
clean-webpack-plugin — 编译前清空输出目录,和本文「编译后删指定夹」场景不同,别混用期望
版权声明: 本文首发于 指尖魔法屋-uni-app编译时删除指定文件夹(https://blog.thinkmoon.cn/post/859-notes-uni-app/) 转载或引用必须申明原指尖魔法屋来源及源地址!