pruno-cli
Version:
A CLI tool for scaffolding projects that use the pruno build tool and a generator for creating components.
47 lines (36 loc) • 1.44 kB
JavaScript
;
var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; };
var spawn = require("child_process").spawn;
var colors = _interopRequire(require("colors"));
var log = require("../logger").log;
var Promise = _interopRequire(require("bluebird"));
var save = exports.save = function (packages) {
return install("--save", packages, "install");
};
var saveDev = exports.saveDev = function (packages) {
return install("--save-dev", packages, "install");
};
var rmSave = exports.rmSave = function (packages) {
return install("--save", packages, "uninstall");
};
var rmSaveDev = exports.rmSaveDev = function (packages) {
return install("--save-dev", packages, "uninstall");
};
var install = function (method, packages) {
var action = arguments[2] === undefined ? "install" : arguments[2];
packages = Array.isArray(packages) ? packages : [packages];
var deps = packages.map(function (pkg) {
return pkg.yellow.underline;
}).join(", ");
log(action === "install" ? "Installing" : "Uninstalling", deps, "with ", method.green);
return new Promise(function (resolve, reject) {
spawn("npm", [action, method].concat(packages), { stdio: false }).on("exit", function (err, response) {
if (err) reject(err);
log("Installed", deps, "with ", method.green);
resolve(response);
});
});
};
Object.defineProperty(exports, "__esModule", {
value: true
});