一 : 前言

关于项目中的config 其实与build / publish有关, 如下
Egret之config.ts_第1张图片
①, config.ts与web平台有关
②, config.wxgame.ts与wxgame有关
现只讲解config.ts 中的publish的文件压缩方法

二 : 文件压缩(主要是egret类库)

在command == 'publish'模块中
Egret之config.ts_第2张图片

            const outputDir = `bin-release/web/${version}`;
            return {
                outputDir,
                commands: [
                    new CustomPlugin(),
                    new CompilePlugin({ libraryType: "release", defines: { DEBUG: false, RELEASE: true } }),
                    new ExmlPlugin('commonjs'), // 非 EUI 项目关闭此设置contents
                    new UglifyPlugin([
                        {
                            // 需要被压缩的文件
                            sources: [
                                "libs/modules/egret/egret.min.js",
                                "libs/modules/egret/egret.web.min.js",
                                "libs/modules/res/res.min.js",
                                "libs/modules/tween/tween.min.js",
                                "libs/modules/game/game.min.js",
                                "libs/modules/promise/promise.min.js",
                                "libs/modules/eui/eui.min.js",
                                "libs/modules/socket/socket.min.js",
                                "libs/modules/jszip/jszip.min.js"
                            ],
                            // 压缩后的文件
                            target: "lib.main.min.js"
                        },
                        {
                            sources: ["main.js"],
                            target: "main.min.js"
                        }
                    ]),
                    new RenamePlugin({
                        verbose: true, hash: 'crc32', matchers: [
                            { from: "**/*.js", to: "[path][name]_[hash].[ext]" }//hash
                        ]
                    }),
                    // new ResPlugin(),
                    new ManifestPlugin({ output: "manifest.json" })
                ]
            }

压缩JS文件需要使用UplifyPlugin插件 , 如上代码(如下图)
Egret之config.ts_第3张图片

三 : 好处

①减少请求次数
②隐藏类库代码