UNPKG

dragonbones-runtime

Version:

the tools to build dragonbones file for diffrent framework

97 lines (77 loc) 3.65 kB
/// <reference path="../lib/types.d.ts" /> //import globals = require("../globals"); import * as Compiler from './Compiler'; import * as tasks from '../tasks'; import * as utils from '../lib/utils'; import FileUtil = require('../lib/FileUtil'); import * as fs from 'fs'; import * as path from 'path'; import CopyFilesCommand = require("../commands/copyfile"); import * as EgretProject from '../project'; import ZipCommand = require("./ZipCommand"); import copyNative = require("./CopyNativeFiles"); import CompileProject = require('./CompileProject'); export async function publishResource(version: string) { let { releaseDir, projectDir } = egret.args; const projectRoot = projectDir; const res = require('../lib/resourcemanager'); tasks.run(); const command = "publish"; const debug = true; const target = egret.args.target; return await res.build({ projectRoot, debug, command, target, version }); } export function legacyPublishNative(versionFile: string) { const options = egret.args; const manifestPath = FileUtil.joinPath(options.releaseDir, "ziptemp", "manifest.json"); EgretProject.manager.generateManifest(null, { debug: false, platform: 'native' }, manifestPath); EgretProject.manager.modifyNativeRequire(manifestPath); var allMainfestPath = FileUtil.joinPath(options.releaseDir, "all.manifest"); if (FileUtil.exists(allMainfestPath)) { FileUtil.copy(allMainfestPath, FileUtil.joinPath(options.releaseDir, "ziptemp", "all.manifest")); } FileUtil.remove(allMainfestPath); //先拷贝 launcher FileUtil.copy(FileUtil.joinPath(options.templateDir, "runtime"), FileUtil.joinPath(options.releaseDir, "ziptemp", "launcher")); FileUtil.copy(FileUtil.joinPath(options.releaseDir, "main.min.js"), FileUtil.joinPath(options.releaseDir, "ziptemp", "main.min.js")); FileUtil.remove(FileUtil.joinPath(options.releaseDir, "main.min.js")); // EgretProject.manager.copyLibsForPublish(FileUtil.joinPath(options.releaseDir, "ziptemp"), "native"); //runtime 打包所有js文件以及all.manifest const zip = new ZipCommand(versionFile); zip.execute(function (code) { copyNative.refreshNative(false, versionFile); }); } export function legacyPublishHTML5() { const options = egret.args; const manifestPath = FileUtil.joinPath(egret.args.releaseDir, "manifest.json"); const indexPath = FileUtil.joinPath(egret.args.releaseDir, "index.html"); EgretProject.manager.generateManifest(null, { debug: false, platform: "web" }, manifestPath); if (!EgretProject.data.useTemplate) { FileUtil.copy(FileUtil.joinPath(options.projectDir, "index.html"), indexPath); EgretProject.manager.modifyIndex(manifestPath, indexPath); } else { FileUtil.copy(FileUtil.joinPath(options.templateDir, "web", "index.html"), indexPath); EgretProject.manager.modifyIndex(manifestPath, indexPath); } const copyAction = new CopyAction(options.projectDir, options.releaseDir); copyAction.copy("favicon.ico"); // EgretProject.manager.copyLibsForPublish(options.releaseDir, "web"); } class CopyAction { constructor(private from, private to) { } public copy(resourcePath: string | string[]) { if (typeof resourcePath == 'string') { let fromPath = path.resolve(this.from, resourcePath); let toPath = path.resolve(this.to, resourcePath) if (FileUtil.exists(fromPath)) { FileUtil.copy(fromPath, toPath); } } else { resourcePath.forEach(this.copy.bind(this)); } } }