'use strict'; const path = require('path'); const fs = require('fs'); const fsPro = require('fs-extra'); const chalk = require('chalk'); const Utils = require('../lib/utils'); /** * 资源替换 */ module.exports = { /** * 执行 */ run(options = {}) { const warnTips = chalk.bgYellow('Warning') + ': This command is deprecated. Use move instead !'; console.log(warnTips); console.log('[ee-bin] [rd] Start moving resources'); const homeDir = process.cwd(); let { dist, target, config } = options; let distDir = './frontend/dist'; let targetDir = './public/dist'; // 命令行优先 if (dist) { distDir = dist; } if (target) { targetDir = target; } // 如果命令行没参数,从bin config 获取 if (!dist && !target) { const hasConfig = Utils.checkConfig(config); if (hasConfig) { const cfg = Utils.loadConfig(config); if (cfg.rd && cfg.rd.dist) { distDir = cfg.rd.dist; } if (cfg.rd && cfg.rd.target) { targetDir = cfg.rd.target; } } } const sourceDir = path.join(homeDir, distDir); if (!fs.existsSync(sourceDir)) { const errorTips = chalk.bgRed('Error') + ' Frontend resource does not exist, please build !'; console.error(errorTips); return } // 清空历史资源 并 复制到ee资源目录 const eeResourceDir = path.join(homeDir, targetDir); if (!fs.existsSync(eeResourceDir)) { fs.mkdirSync(eeResourceDir, {recursive: true, mode: 0o777}); } else { this._rmFolder(eeResourceDir); console.log('[ee-bin] [rd] Clear history resources:', eeResourceDir); } fsPro.copySync(sourceDir, eeResourceDir); console.log('[ee-bin] [rd] Copy a resource to:', eeResourceDir); console.log('[ee-bin] [rd] End'); }, /** * 删除文件夹 */ _rmFolder(folder) { const nodeVersion = (process.versions && process.versions.node) || null; if (nodeVersion && Utils.compareVersion(nodeVersion, '14.14.0') == 1) { fs.rmSync(folder, {recursive: true}); } else { fs.rmdirSync(folder, {recursive: true}); } }, }