kkt
Version:
Create React apps with no build configuration, Cli tool for creating react apps.
100 lines (99 loc) • 4.83 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = build;
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _loaderConf = require("../utils/loaderConf");
var _path = require("../utils/path");
var _paths = require("../overrides/paths");
var _miniCssExtractPlugin = require("../plugins/miniCssExtractPlugin");
var _checkRequired = require("../overrides/checkRequired");
var _loadSourceMapWarnning = require("../plugins/loadSourceMapWarnning");
process.env.NODE_ENV = 'production';
function build(_x) {
return _build.apply(this, arguments);
}
function _build() {
_build = (0, _asyncToGenerator2["default"])( /*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee(argvs) {
var _ref, _ref$isNotCheckHTML, isNotCheckHTML, paths, webpackConfigPath, createWebpackConfig, kktrc, overridesHandle, shouldUseSourceMap, overrideOption, defaultWepack, webpackConf, message;
return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_ref = argvs || {}, _ref$isNotCheckHTML = _ref.isNotCheckHTML, isNotCheckHTML = _ref$isNotCheckHTML === void 0 ? false : _ref$isNotCheckHTML;
_context.prev = 1;
paths = (0, _paths.overridePaths)(argvs, argvs.overridePaths);
_context.next = 5;
return (0, _checkRequired.checkRequiredFiles)(paths, isNotCheckHTML);
case 5:
webpackConfigPath = "".concat(_path.reactScripts, "/config/webpack.config").concat(!_path.isWebpackFactory ? '.prod' : '');
createWebpackConfig = require(webpackConfigPath);
_context.next = 9;
return (0, _loaderConf.loaderConf)((0, _path.getConfPath)(argvs.configName));
case 9:
kktrc = _context.sent;
overridesHandle = kktrc["default"] || argvs.overridesWebpack;
if (!(overridesHandle && typeof overridesHandle === 'function')) {
_context.next = 28;
break;
}
// Source maps are resource heavy and can cause out of memory issue for large source files.
shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false';
overrideOption = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, argvs), {}, {
shouldUseSourceMap: shouldUseSourceMap,
paths: paths,
kktrc: kktrc
});
defaultWepack = createWebpackConfig('production');
defaultWepack = (0, _loadSourceMapWarnning.loadSourceMapWarnning)(defaultWepack);
defaultWepack = (0, _miniCssExtractPlugin.miniCssExtractPlugin)(defaultWepack, 'production');
defaultWepack = argvs.overridesWebpack ? argvs.overridesWebpack(defaultWepack, 'production', overrideOption) : defaultWepack;
if (!kktrc["default"]) {
_context.next = 24;
break;
}
_context.next = 21;
return overridesHandle(defaultWepack, 'production', overrideOption);
case 21:
_context.t0 = _context.sent;
_context.next = 25;
break;
case 24:
_context.t0 = defaultWepack;
case 25:
webpackConf = _context.t0;
if (webpackConf.proxySetup && typeof webpackConf.proxySetup === 'function') {
delete webpackConf.proxySetup;
}
// override config in memory
require.cache[require.resolve(webpackConfigPath)].exports = function (env) {
return webpackConf;
};
case 28:
_context.next = 30;
return require("".concat(_path.reactScripts, "/scripts/build"));
case 30:
_context.next = 38;
break;
case 32:
_context.prev = 32;
_context.t1 = _context["catch"](1);
message = _context.t1 && _context.t1.message ? _context.t1.message : '';
console.log('\x1b[31;1m KKT:BUILD:ERROR: \x1b[0m\n', _context.t1);
new Error("KKT:BUILD:ERROR: \n ".concat(message));
process.exit(1);
case 38:
case "end":
return _context.stop();
}
}
}, _callee, null, [[1, 32]]);
}));
return _build.apply(this, arguments);
}
module.exports = exports.default;
//# sourceMappingURL=build.js.map