UNPKG

polymerx-cli

Version:

Unlock the power of Polymer 3, Web Components and modern web tools.

110 lines (86 loc) 3.14 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _path = require("path"); var _rimraf = _interopRequireDefault(require("rimraf")); var _ora = _interopRequireDefault(require("ora")); var _pify = _interopRequireDefault(require("pify")); var _isDir = _interopRequireDefault(require("../lib/is-dir")); var _getPkg = _interopRequireDefault(require("../lib/get-pkg")); var _error = _interopRequireDefault(require("../lib/error")); var _logStats = require("../lib/webpack/log-stats"); var _runWebpack = _interopRequireDefault(require("../lib/webpack/run-webpack")); var _asyncCommand = _interopRequireDefault(require("../lib/async-command")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } const pRimRaf = (0, _pify.default)(_rimraf.default); var _default = (0, _asyncCommand.default)({ command: 'build [src] [dest]', desc: 'Create a production build in build/', builder: { cwd: { description: 'A directory to use instead of $PWD.', default: '.' }, src: { description: 'Entry file (index.js)', default: 'src' }, dest: { description: 'Directory root for output', default: 'dist' }, workers: { description: 'Add a Service Workers to the application.', alias: 'w', type: 'boolean', default: true }, clean: { description: 'Clear output directory before building.', type: 'boolean', default: true }, json: { description: 'Generate build statistics for analysis.', type: 'boolean', default: false }, config: { description: 'Path to custom polymerx.config.js', alias: 'c' } }, async handler(argv) { const spinner = (0, _ora.default)({ text: 'Preparing build things...', color: 'magenta' }).start(); const cwd = (0, _path.resolve)(argv.cwd); const modules = (0, _path.resolve)(cwd, 'node_modules'); if (!(0, _isDir.default)(modules)) { (0, _error.default)('No `node_modules` found! Please run `npm install` before continuing.', spinner); return process.exit(1); } if (argv.clean) { const dest = (0, _path.resolve)(cwd, argv.dest || 'dist'); await pRimRaf(dest); } const pkg = await (0, _getPkg.default)(argv.cwd); const newArgv = _extends({}, argv, { production: true, pkg }); spinner.color = 'yellow'; spinner.text = 'Running compiler...'; try { const results = await (0, _runWebpack.default)(newArgv); (0, _logStats.endBuildMessage)(results, spinner); (0, _logStats.showStats)(results); (0, _logStats.endMessage)(results.toJson().assets); } catch (error) { console.error('\n' + error); } } }); exports.default = _default;