UNPKG

@fuse-oo/cli

Version:

fuse内部脚手架工具

85 lines (70 loc) 2.24 kB
// 写入文件,安装依赖 const fs = require('fs-extra') const chalk = require('chalk') const path = require('path') const { log, error, logWithSpinner, stopSpinner, } = require('./common') const libPath = path.resolve(__dirname, '../../temp/libs/') const libs = ['jquery', 'zepto', 'underscore', 'loadash', 'flexable'] const libMap = {} libs.forEach(lib => { libMap[lib] = path.resolve(libPath, `./${lib}.js`) }) const uiPath = path.resolve(__dirname, '../../temp/ui/') const uis = ['amazeui', 'mdui', 'mzui', 'zui'] const uiMap = {} uis.forEach(ui => { uiMap[ui] = { css: path.resolve(uiPath, `./${ui}/${ui}.min.css`), js: path.resolve(uiPath, `./${ui}/${ui}.min.js`) } }) // 依赖jq的ui库 const relyOnJqueryUI = ['zui', 'mzui'] const promises = [] // 添加第三方工具库 async function generateLib(context, lib) { const _context = `${context}/js` const libTemp = await fs.readFile(libMap[lib]) await fs.writeFile(path.resolve(_context, `./${lib}.js`), libTemp, {flag: 'w'}) } // 添加ui库 async function generateUI(context, ui) { const uiCssTemp = await fs.readFile(uiMap[ui].css) const uiJsTemp = await fs.readFile(uiMap[ui].js) await fs.writeFile(path.resolve(`${context}/css`, `./${ui}.min.css`), uiCssTemp, {flag: 'w'}) await fs.writeFile(path.resolve(`${context}/js`, `./${ui}.min.js`), uiJsTemp, {flag: 'w'}) } module.exports = async (context, cliOptions) => { logWithSpinner(`${chalk.cyan('[2/3]')} 🚚 添加${chalk.yellow('第三方库')}`) if (cliOptions.ui) { if (relyOnJqueryUI.includes(cliOptions.ui)) { const jq = 'jquery' if (!cliOptions.libs) { cliOptions.libs = [ jq ] } else if (!cliOptions.libs.includes(jq)) { cliOptions.libs.push(jq) } } const promise = await generateUI(context, cliOptions.ui) promises.push(promise) } if (cliOptions.libs) { cliOptions.libs.forEach(async (lib) => { const promise = await generateLib(context, lib) promises.push(promise) }) } if (cliOptions.hasRem) { const promise = await generateLib(context, 'flexable') promises.push(promise) } Promise.all(promises).catch(err => { stopSpinner(false) error(err) }) }