yst-react-cli
Version:
50 lines (47 loc) • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var ora = require('ora'); // 获取模版时的loading
var spawn = require('cross-spawn');
var chalk = require('chalk'); // 美化输出
// loading封装
var waitFunLoading = exports.waitFunLoading = function waitFunLoading(fun) {
var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'loading...';
return async function () {
var spinner = ora(message);
spinner.start();
spinner.color = 'blue';
var res = void 0;
try {
res = await fun.apply(undefined, arguments);
} catch (err) {
console.log(chalk.redBright.bold(err, 'Download failed!'));
} finally {
spinner.succeed();
}
return res;
};
};
// 安装依赖
var installDep = exports.installDep = function installDep(_ref) {
var dir = _ref.dir,
packageType = _ref.packageType;
return new Promise(function (resolve, reject) {
var args = ['install', '--save', '--save-exact', '--loglevel', 'error'];
var child = spawn(packageType, args, {
cwd: dir,
stdio: ['pipe', process.stdout, process.stderr]
});
child.once('close', function (code) {
if (code !== 0) {
reject({
command: packageType + ' ' + args.join(' ')
});
return;
}
resolve();
});
child.once('error', reject);
});
};