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

u=3276836620,1954497454&fm=26&gp=0.jpg

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 指向 unpackageinclude 里用 NODE_ENVUNI_PLATFORM 区分 dev/build、各端路径,删错目录会把整包打废,改路径后先本地编译看一眼 unpackage/dist 再提交。trash: false 表示直接删除不进回收站。

部分webpack类似的webpack插件

  1. copy-webpack-plugin — 编译时拷贝静态资源

  2. clean-webpack-plugin — 编译清空输出目录,和本文「编译后删指定夹」场景不同,别混用期望

版权声明: 本文首发于 指尖魔法屋-uni-app编译时删除指定文件夹https://blog.thinkmoon.cn/post/859-notes-uni-app/) 转载或引用必须申明原指尖魔法屋来源及源地址!