UNPKG

custom-app

Version:

ITIMS��Ʒ�鿪��ר��React���,�Dz��ý��ּ�dhcc-app���������

151 lines (135 loc) 4.7 kB
let exec = require('child_process').exec; let spinner = require('../util/spinner'); let chalk = require('chalk') let path = require('path'); let fs = require("fs"); let execList = []; let initNRM = function () { return new Promise(function (resolve, reject) { spinner.logWithSpinner('', chalk.cyan('nrm init start')) var install_webpack = 'npm install -g nrm'; exec(install_webpack, { cwd: execPath }, function (err, stdout, stderr) { if (err) { console.error(chalk.red('nrm 初始化失败:' + stderr)); console.log(stdout); spinner.stopSpinner(); } else { spinner.logWithSpinner('', stdout) spinner.logWithSpinner(chalk.cyan('nrm init complete')) spinner.logWithSpinner(' '); resolve(); } }); }) } execList.push(initNRM); let useNPMRegistry = function () { return new Promise(function (resolve, reject) { spinner.logWithSpinner('', chalk.cyan('nrm use npm start')) var install_webpack = 'nrm use taobao'; exec(install_webpack, { cwd: execPath }, function (err, stdout, stderr) { if (err) { console.error(chalk.red('nrm use taobao失败:' + stderr)); spinner.stopSpinner(); } else { spinner.logWithSpinner('', stdout) spinner.logWithSpinner(chalk.cyan('nrm use taobao complete')) spinner.logWithSpinner(' '); resolve(); } }); }) } execList.push(useNPMRegistry); let addDHCCRegistry = function () { return new Promise(function (resolve, reject) { spinner.logWithSpinner('', chalk.cyan('nrm dhcc init start')) var install_webpack = 'nrm add dhcc http://172.24.24.236:8081/repository/npmGroup24.236/'; exec(install_webpack, { cwd: execPath }, function (err, stdout, stderr) { if (err) { console.error(chalk.red('nrm dhcc 初始化失败:' + stderr)); spinner.stopSpinner(); } else { spinner.logWithSpinner('', stdout) spinner.logWithSpinner(chalk.cyan('nrm dhcc init complete')) spinner.logWithSpinner(' '); resolve(); } }); }) } //execList.push(addDHCCRegistry); let useDHCCRegistry = function () { return new Promise(function (resolve, reject) { spinner.logWithSpinner('', chalk.cyan('nrm use dhcc start')) var install_webpack = 'nrm use dhcc'; exec(install_webpack, { cwd: execPath }, function (err, stdout, stderr) { if (err) { console.error(chalk.red('nrm use dhcc失败:' + stderr)); spinner.stopSpinner(); } else { spinner.logWithSpinner('', stdout) spinner.logWithSpinner(chalk.cyan('nrm use dhcc complete')) spinner.logWithSpinner(' '); resolve(); } }); }) } //execList.push(useDHCCRegistry); let Install2ndpage = function () { return new Promise(function (resolve, reject) { spinner.logWithSpinner('', chalk.cyan('itims4-2ndpage init start')) var install_webpack = 'npm install itims4-2ndpage -g'; exec(install_webpack, { cwd: execPath }, function (err, stdout, stderr) { if (err) { console.error(chalk.red('itims4-2ndpage 安装失败:' + stderr)); spinner.stopSpinner(); } else { spinner.logWithSpinner('', stdout) spinner.logWithSpinner(chalk.cyan('itims4-2ndpage init complete')) spinner.logWithSpinner(' '); resolve(); } }); }) } execList.push(Install2ndpage); //安装webpack webpack-cli let loadDEMO = function () { return new Promise(function (resolve, reject) { spinner.logWithSpinner('', chalk.cyan('itims4-2ndpage DEMO installing')) var install_webpack = 'itims4 initTpl dpList'; exec(install_webpack, { cwd: execPath }, function (err, stdout, stderr) { if (err) { console.error(chalk.red('itims4-2ndpage DEMO 安装失败:' + stderr)); spinner.stopSpinner(); } else { spinner.logWithSpinner('', stdout) spinner.logWithSpinner(chalk.cyan('itims4-2ndpage DEMO installed complete')) spinner.logWithSpinner(' ', ' '); resolve(); } }); }) } execList.push(loadDEMO); async function queue (arr) { let res = null for (let promise of arr) { res = await promise(res) } return await res } var execPath; module.exports = function (reactAppPath, callback) { execPath = reactAppPath; if (!fs.existsSync(execPath)) { chalk.cyan('根目录下创建src目录') fs.mkdirSync(execPath); } queue(execList) .then(data => { callback && callback.call(); }) }