關於項目中的config 其實與build / publish有關, 以下
①, config.ts與web平臺有關
②, config.wxgame.ts與wxgame有關
現只講解config.ts 中的publish的文件壓縮方法web
在command == 'publish'模塊中json
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插件 , 如上代碼(以下圖)promise
①減小請求次數
②隱藏類庫代碼socket