kkt
Version:
Create React apps with no build configuration, Cli tool for creating react apps.
107 lines (106 loc) • 5.2 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 _path = _interopRequireDefault(require("path"));
var _resolveFallback = _interopRequireDefault(require("@kkt/resolve-fallback"));
var _conf = require("../utils/conf");
var _path2 = 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, configOverrides, 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(_path2.reactScripts, "/config/webpack.config").concat(!_path2.isWebpackFactory ? '.prod' : '');
createWebpackConfig = require(webpackConfigPath);
configOverrides = argvs['config-overrides'];
_context.next = 10;
return (0, _conf.loaderConfig)(argvs.configName || '.kktrc', {
/**
* Specify the directory where the configuration is located.
*/
cwd: configOverrides ? _path["default"].resolve(process.cwd(), argvs['config-overrides']) : undefined,
ignoreLog: true
});
case 10:
kktrc = _context.sent;
overridesHandle = kktrc["default"] || argvs.overridesWebpack;
if (!(overridesHandle && typeof overridesHandle === 'function')) {
_context.next = 30;
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, _resolveFallback["default"])(defaultWepack);
defaultWepack = (0, _miniCssExtractPlugin.miniCssExtractPlugin)(defaultWepack, 'production');
defaultWepack = argvs.overridesWebpack ? argvs.overridesWebpack(defaultWepack, 'production', overrideOption) : defaultWepack;
if (!kktrc["default"]) {
_context.next = 26;
break;
}
_context.next = 23;
return overridesHandle(defaultWepack, 'production', overrideOption);
case 23:
_context.t0 = _context.sent;
_context.next = 27;
break;
case 26:
_context.t0 = defaultWepack;
case 27:
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 30:
_context.next = 32;
return require("".concat(_path2.reactScripts, "/scripts/build"));
case 32:
_context.next = 40;
break;
case 34:
_context.prev = 34;
_context.t1 = _context["catch"](1);
message = _context.t1 && _context.t1 instanceof Error && _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 40:
case "end":
return _context.stop();
}
}, _callee, null, [[1, 34]]);
}));
return _build.apply(this, arguments);
}
module.exports = exports.default;