rollup-umd-scripts
Version:
CLI for rollup-umd projects
55 lines (49 loc) • 1.98 kB
JavaScript
;
var _stringify = require('babel-runtime/core-js/json/stringify');
var _stringify2 = _interopRequireDefault(_stringify);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* eslint-disable no-undef, no-param-reassign, global-require, no-unused-vars, no-console, no-underscore-dangle, prefer-destructuring */
var async = require('async');
var path = require('path');
var fs = require('fs');
function install(argv, name, done) {
async.series([function (cb) {
return spawn('npm install --save-dev ' + name, cb);
}, function (cb) {
var babelRcPath = path.join(argv.path, '.babelrc');
var babelRc = JSON.parse(fs.readFileSync(babelRcPath, { encoding: 'utf8' }));
var pluginName = name.indexOf('babel-plugin-') === -1 ? name : name.slice(name.indexOf('babel-plugin-') + 'babel-plugin-'.length);
if (babelRc.plugins.indexOf(pluginName) === -1) {
babelRc.plugins.push(pluginName);
}
fs.writeFileSync(babelRcPath, (0, _stringify2.default)(babelRc, null, 2), { encoding: 'utf8' });
cb(null, name + ' plugin installed and inserted in .babelrc');
}], done);
}
exports.command = 'plugin <package> [packages..]';
exports.desc = 'Install package and append to .babelrc the plugin(s) with `babel-plugin-` truncated';
exports.builder = function (yargs) {
return yargs.option('path', {
alias: 'p',
describe: 'path',
default: process.cwd()
});
};
exports.handler = function (argv) {
switch (argv.path[0]) {
case '/':
break;
default:
argv.path = argv.path[1] === '/' ? path.join(process.cwd(), argv.path.slice(2)) : path.join(process.cwd(), argv.path);
break;
}
async.map([].concat(argv.package).concat(argv.packages), function (name, cb) {
return install(argv, name, cb);
}, function (err, results) {
if (err) {
console.error('[ERROR] ' + err.message);
process.exit(1);
}
console.log(results.join('\n'));
});
};