UNPKG

rollup-umd-scripts

Version:

CLI for rollup-umd projects

55 lines (49 loc) 1.98 kB
'use strict'; 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')); }); };