@iot-studio/material-toolkit-utils
Version:
material 工具链相关工具
50 lines (49 loc) • 1.54 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.install = exports.runCmd = void 0;
var log_1 = __importDefault(require("./log"));
var exec = require('child_process').exec;
var execSh = require('exec-sh');
var fs = require('fs');
var spawn = require('cross-spawn');
function runCmd(command, options) {
if (options === void 0) { options = { stdio: 'inherit' }; }
return new Promise(function (resolve, reject) {
execSh(command, {}, function (err) {
if (err) {
log_1.default.error(err);
reject(err);
}
log_1.default.info("" + command, '\n');
resolve(null);
});
});
}
exports.runCmd = runCmd;
;
function install(packageName, localPath) {
return new Promise(function (resolve, reject) {
if (fs.existsSync(localPath)) {
return;
}
log_1.default.info('正在安装...:', packageName);
var ps = spawn('bnpm', ['i', packageName], {
stdio: 'inherit',
cdw: process.cwd(),
env: process.env
});
ps.on('error', function (err) {
reject(err);
});
ps.on('exit', function (code) {
if (code === 0) {
return resolve(null);
}
return reject(code);
});
});
}
exports.install = install;