12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- /// 阅读 api.d.ts 查看文档
- ///<reference path="api.d.ts"/>
- import * as path from 'path';
- import { UglifyPlugin, IncrementCompilePlugin, CompilePlugin, ManifestPlugin, ExmlPlugin, EmitResConfigFilePlugin, TextureMergerPlugin, RenamePlugin, CleanPlugin } from 'built-in';
- import { WxgamePlugin } from './wxgame/wxgame';
- import { BricksPlugin } from './bricks/bricks';
- import { CustomPlugin } from './myplugin';
- import { ResPlugin } from './resplugin';
- const config: ResourceManagerConfig = {
- buildConfig: (params) => {
- const { target, command, projectName, version } = params;
- if (command == 'build') {
- const outputDir = '.';
- return {
- outputDir,
- commands: [
- // new EmitResConfigFilePlugin({
- // output: "resource/default.res.json",
- // typeSelector: config.typeSelector,
- // nameSelector: p => path.basename(p).replace(/\./gi, "_"),
- // groupSelector: p => "preload"
- // }),
- new ExmlPlugin('debug'), // 非 EUI 项目关闭此设置
- new IncrementCompilePlugin(),
- ]
- }
- }
- else if (command == 'publish') {
- const outputDir = `bin-release/web/${version}`;
- return {
- outputDir,
- commands: [
- new CustomPlugin(),
- new CompilePlugin({ libraryType: "release", defines: { DEBUG: false, RELEASE: true } }),
- new ExmlPlugin('commonjs'), // 非 EUI 项目关闭此设置
- new UglifyPlugin([{
- sources: ["main.js"],
- target: "main.min.js"
- }]),
- new RenamePlugin({
- verbose: true, hash: 'crc32', matchers: [
- { from: "**/*.js", to: "[path][name]_[hash].[ext]" }
- ]
- }),
- new ResPlugin(),
- new ManifestPlugin({ output: "manifest.json" })
- ]
- }
- }
- else {
- throw `unknown command : ${params.command}`
- }
- },
- mergeSelector: (path) => {
- if (path.indexOf("assets/bitmap/") >= 0) {
- return "assets/bitmap/sheet.sheet"
- }
- else if (path.indexOf("armature") >= 0 && path.indexOf(".json") >= 0) {
- return "assets/armature/1.zip";
- }
- },
- typeSelector: (path) => {
- const ext = path.substr(path.lastIndexOf(".") + 1);
- const typeMap = {
- "jpg": "image",
- "png": "image",
- "webp": "image",
- "json": "json",
- "fnt": "font",
- "pvr": "pvr",
- "mp3": "sound",
- "zip": "zip",
- "sheet": "sheet",
- "exml": "text"
- }
- let type = typeMap[ext];
- if (type == "json") {
- if (path.indexOf("sheet") >= 0) {
- type = "sheet";
- } else if (path.indexOf("movieclip") >= 0) {
- type = "movieclip";
- };
- }
- return type;
- }
- }
- export = config;
|