UNPKG

silki

Version:

Cli tool for build react app, based on generator-react-multipage, create-react-app, roadhog. Support react multiple pages app develop.

95 lines (69 loc) 2.56 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _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; }; exports.build = build; var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk); var _webpack = require('webpack'); var _webpack2 = _interopRequireDefault(_webpack); var _paths = require('./utils/paths'); var _paths2 = _interopRequireDefault(_paths); var _getConfig = require('./utils/getConfig'); var _getConfig2 = _interopRequireDefault(_getConfig); var _applyWebpackConfig = require('./utils/applyWebpackConfig'); var _applyWebpackConfig2 = _interopRequireDefault(_applyWebpackConfig); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var rcConfig = void 0; var config = void 0; var argv = require('yargs').usage('Usage: roadhog build [options]').option('debug', { type: 'boolean', describe: 'Build without compress', default: false }).help('h').argv; function build(argv) { var paths = (0, _paths2.default)(argv.cwd); try { rcConfig = (0, _getConfig2.default)(process.env.NODE_ENV, argv.cwd); } catch (e) { console.log(_chalk2.default.red('Failed to parse .silkrc config.')); console.log(); console.log(e.message); process.exit(1); } config = (0, _applyWebpackConfig2.default)(require('./config/webpack.config.dll')(argv, rcConfig, paths), process.env.NODE_ENV); realBuild(argv); } // Print out errors function printErrors(summary, errors) { console.log(_chalk2.default.red(summary)); console.log(); errors.forEach(function (err) { console.log(err.message || err); console.log(); }); } function doneHandler(argv, err, stats) { if (err) { printErrors('Failed to compile.', [err]); process.exit(1); } if (stats.compilation.errors.length) { printErrors('Failed to compile.', stats.compilation.errors); process.exit(1); } (0, _applyWebpackConfig.warnIfExists)(); console.log(_chalk2.default.green('Compiled successfully.')); console.log(); } // Create the production build and print the deployment instructions. function realBuild(argv) { var compiler = (0, _webpack2.default)(config); var done = doneHandler.bind(null, argv); compiler.run(done); } // Run. if (require.main === module) { build(_extends({}, argv, { cwd: process.cwd() })); }