UNPKG

react-static

Version:

A progressive static site generator for React

170 lines (136 loc) 15.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = buildProductionBundles; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _webpack = _interopRequireDefault(require("webpack")); var _chalk = _interopRequireDefault(require("chalk")); var _makeWebpackConfig = _interopRequireDefault(require("./makeWebpackConfig")); var _clientStats = require("../clientStats"); var _utils = require("../../utils"); var _plugins = _interopRequireDefault(require("../plugins")); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function buildProductionBundles(_x) { return _buildProductionBundles.apply(this, arguments); } function _buildProductionBundles() { _buildProductionBundles = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(state) { var allWebpackConfigs; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: // Build static pages and JSON console.log('Bundling App...'); (0, _utils.time)(_chalk["default"].green("[\u2713] App Bundled")); _context3.next = 4; return (0, _makeWebpackConfig["default"])(state); case 4: _context3.t0 = _context3.sent; _context3.next = 7; return (0, _makeWebpackConfig["default"])(_objectSpread(_objectSpread({}, state), {}, { stage: 'node' })); case 7: _context3.t1 = _context3.sent; allWebpackConfigs = [_context3.t0, _context3.t1]; _context3.next = 11; return new Promise( /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(resolve, reject) { return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: (0, _webpack["default"])(allWebpackConfigs).run( /*#__PURE__*/function () { var _ref2 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(err, stats) { var _stats$stats, prodStats, nodeStats, checkBuildStats; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: checkBuildStats = function _checkBuildStats(stage, stageStats) { var buildErrors = stageStats.hasErrors(); var buildWarnings = stageStats.hasWarnings(); if (buildErrors || buildWarnings) { console.log(stageStats.toString({ context: state.config.context, performance: false, hash: false, timings: true, entrypoints: false, chunkOrigins: false, chunkModules: false, colors: _chalk["default"].supportsColor })); if (buildErrors) { console.log(_chalk["default"].red.bold("\n => There were ERRORS during the ".concat(stage, " build stage! :(\n => Fix them and try again!\n "))); } else if (buildWarnings) { console.log(_chalk["default"].yellow("\n=> There were WARNINGS during the ".concat(stage, " build stage. Your site will still function, but you may achieve better performance by addressing the warnings above.\n"))); } } }; if (!err) { _context.next = 5; break; } console.log(_chalk["default"].red(err.stack || err)); if (err.details) { console.log(_chalk["default"].red(err.details)); } return _context.abrupt("return", reject(err)); case 5: stats.toJson('verbose'); _stats$stats = (0, _slicedToArray2["default"])(stats.stats, 2), prodStats = _stats$stats[0], nodeStats = _stats$stats[1]; checkBuildStats('prod', prodStats); checkBuildStats('node', nodeStats); _context.next = 11; return (0, _clientStats.outputClientStats)(state, prodStats.toJson()); case 11: state = _context.sent; resolve(state); case 13: case "end": return _context.stop(); } } }, _callee); })); return function (_x4, _x5) { return _ref2.apply(this, arguments); }; }()); case 1: case "end": return _context2.stop(); } } }, _callee2); })); return function (_x2, _x3) { return _ref.apply(this, arguments); }; }()); case 11: state = _context3.sent; (0, _utils.timeEnd)(_chalk["default"].green("[\u2713] App Bundled")); _context3.next = 15; return _plugins["default"].afterBundle(state); case 15: state = _context3.sent; return _context3.abrupt("return", state); case 17: case "end": return _context3.stop(); } } }, _callee3); })); return _buildProductionBundles.apply(this, arguments); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0aWMvd2VicGFjay9idWlsZFByb2R1Y3Rpb25CdW5kbGVzLmpzIl0sIm5hbWVzIjpbImJ1aWxkUHJvZHVjdGlvbkJ1bmRsZXMiLCJzdGF0ZSIsImNvbnNvbGUiLCJsb2ciLCJjaGFsayIsImdyZWVuIiwic3RhZ2UiLCJhbGxXZWJwYWNrQ29uZmlncyIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicnVuIiwiZXJyIiwic3RhdHMiLCJjaGVja0J1aWxkU3RhdHMiLCJzdGFnZVN0YXRzIiwiYnVpbGRFcnJvcnMiLCJoYXNFcnJvcnMiLCJidWlsZFdhcm5pbmdzIiwiaGFzV2FybmluZ3MiLCJ0b1N0cmluZyIsImNvbnRleHQiLCJjb25maWciLCJwZXJmb3JtYW5jZSIsImhhc2giLCJ0aW1pbmdzIiwiZW50cnlwb2ludHMiLCJjaHVua09yaWdpbnMiLCJjaHVua01vZHVsZXMiLCJjb2xvcnMiLCJzdXBwb3J0c0NvbG9yIiwicmVkIiwiYm9sZCIsInllbGxvdyIsInN0YWNrIiwiZGV0YWlscyIsInRvSnNvbiIsInByb2RTdGF0cyIsIm5vZGVTdGF0cyIsInBsdWdpbnMiLCJhZnRlckJ1bmRsZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O1NBRThCQSxzQjs7Ozs7MEdBQWYsa0JBQXNDQyxLQUF0QztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDYjtBQUNBQyxZQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxpQkFBWjtBQUNBLDZCQUFLQyxrQkFBTUMsS0FBTixDQUFZLHNCQUFaLENBQUw7QUFIYTtBQUFBLG1CQU1MLG1DQUFrQkosS0FBbEIsQ0FOSzs7QUFBQTtBQUFBO0FBQUE7QUFBQSxtQkFPTCxtRUFBdUJBLEtBQXZCO0FBQThCSyxjQUFBQSxLQUFLLEVBQUU7QUFBckMsZUFQSzs7QUFBQTtBQUFBO0FBS1BDLFlBQUFBLGlCQUxPO0FB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QXBFRDs7QUFBQTtBQW9FYkEsWUFBQUEsS0FwRWE7QUFBQSw4Q0FzRU5BLEtBdEVNOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEciLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZHluYW1pYy1yZXF1aXJlLCByZWFjdC9uby1kYW5nZXIsIGltcG9ydC9uby1tdXRhYmxlLWV4cG9ydHMgKi9cbmltcG9ydCB3ZWJwYWNrIGZyb20gJ3dlYnBhY2snXG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnXG4vL1xuaW1wb3J0IG1ha2VXZWJwYWNrQ29uZmlnIGZyb20gJy4vbWFrZVdlYnBhY2tDb25maWcnXG5pbXBvcnQgeyBvdXRwdXRDbGllbnRTdGF0cyB9IGZyb20gJy4uL2NsaWVudFN0YXRzJ1xuaW1wb3J0IHsgdGltZSwgdGltZUVuZCB9IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHBsdWdpbnMgZnJvbSAnLi4vcGx1Z2lucydcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gYnVpbGRQcm9kdWN0aW9uQnVuZGxlcyhzdGF0ZSkge1xuICAvLyBCdWlsZCBzdGF0aWMgcGFnZXMgYW5kIEpTT05cbiAgY29uc29sZS5sb2coJ0J1bmRsaW5nIEFwcC4uLicpXG4gIHRpbWUoY2hhbGsuZ3JlZW4oJ1tcXHUyNzEzXSBBcHAgQnVuZGxlZCcpKVxuXG4gIGNvbnN0IGFsbFdlYnBhY2tDb25maWdzID0gW1xuICAgIGF3YWl0IG1ha2VXZWJwYWNrQ29uZmlnKHN0YXRlKSxcbiAgICBhd2FpdCBtYWtlV2VicGFja0NvbmZpZyh7IC4uLnN0YXRlLCBzdGFnZTogJ25vZGUnIH0pLCAvLyBNYWtlIHN1cmUgd2UncmUgYnVpbGRpbmcgdGhlIG5vZGUgY29uZmlnXG4gIF1cblxuICBzdGF0ZSA9IGF3YWl0IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB3ZWJwYWNrKGFsbFdlYnBhY2tDb25maWdzKS5ydW4oYXN5bmMgKGVyciwgc3RhdHMpID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsucmVkKGVyci5zdGFjayB8fCBlcnIpKVxuICAgICAgICBpZiAoZXJyLmRldGFpbHMpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5yZWQoZXJyLmRldGFpbHMpKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyKVxuICAgICAgfVxuXG4gICAgICBzdGF0cy50b0pzb24oJ3ZlcmJvc2UnKVxuXG4gICAgICBjb25zdCBbcHJvZFN0YXRzLCBub2RlU3RhdHNdID0gc3RhdHMuc3RhdHNcblxuICAgICAgY2hlY2tCdWlsZFN0YXRzKCdwcm9kJywgcHJvZFN0YXRzKVxuICAgICAgY2hlY2tCdWlsZFN0YXRzKCdub2RlJywgbm9kZVN0YXRzKVxuXG4gICAgICBmdW5jdGlvbiBjaGVja0J1aWxkU3RhdHMoc3RhZ2UsIHN0YWdlU3RhdHMpIHtcbiAgICAgICAgY29uc3QgYnVpbGRFcnJvcnMgPSBzdGFnZVN0YXRzLmhhc0Vycm9ycygpXG4gICAgICAgIGNvbnN0IGJ1aWxkV2FybmluZ3MgPSBzdGFnZVN0YXRzLmhhc1dhcm5pbmdzKClcblxuICAgICAgICBpZiAoYnVpbGRFcnJvcnMgfHwgYnVpbGRXYXJuaW5ncykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgc3RhZ2VTdGF0cy50b1N0cmluZyh7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHN0YXRlLmNvbmZpZy5jb250ZXh0LFxuICAgICAgICAgICAgICBwZXJmb3JtYW5jZTogZmFsc2UsXG4gICAgICAgICAgICAgIGhhc2g6IGZhbHNlLFxuICAgICAgICAgICAgICB0aW1pbmdzOiB0cnVlLFxuICAgICAgICAgICAgICBlbnRyeXBvaW50czogZmFsc2UsXG4gICAgICAgICAgICAgIGNodW5rT3JpZ2luczogZmFsc2UsXG4gICAgICAgICAgICAgIGNodW5rTW9kdWxlczogZmFsc2UsXG4gICAgICAgICAgICAgIGNvbG9yczogY2hhbGsuc3VwcG9ydHNDb2xvcixcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIGlmIChidWlsZEVycm9ycykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgIGNoYWxrLnJlZC5ib2xkKGBcbiAgICAgICAgICAgICAgICA9PiBUaGVyZSB3ZXJlIEVSUk9SUyBkdXJpbmcgdGhlICR7c3RhZ2V9IGJ1aWxkIHN0YWdlISA6KFxuICAgICAgICAgICAgICAgID0+IEZpeCB0aGVtIGFuZCB0cnkgYWdhaW4hXG4gICAgICAgICAgICAgIGApXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSBlbHNlIGlmIChidWlsZFdhcm5pbmdzKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgICAgY2hhbGsueWVsbG93KGBcbj0+IFRoZXJlIHdlcmUgV0FSTklOR1MgZHVyaW5nIHRoZSAke3N0YWdlfSBidWlsZCBzdGFnZS4gWW91ciBzaXRlIHdpbGwgc3RpbGwgZnVuY3Rpb24sIGJ1dCB5b3UgbWF5IGFjaGlldmUgYmV0dGVyIHBlcmZvcm1hbmNlIGJ5IGFkZHJlc3NpbmcgdGhlIHdhcm5pbmdzIGFib3ZlLlxuYClcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgc3RhdGUgPSBhd2FpdCBvdXRwdXRDbGllbnRTdGF0cyhzdGF0ZSwgcHJvZFN0YXRzLnRvSnNvbigpKVxuICAgICAgcmVzb2x2ZShzdGF0ZSlcbiAgICB9KVxuICB9KVxuXG4gIHRpbWVFbmQoY2hhbGsuZ3JlZW4oJ1tcXHUyNzEzXSBBcHAgQnVuZGxlZCcpKVxuXG4gIHN0YXRlID0gYXdhaXQgcGx1Z2lucy5hZnRlckJ1bmRsZShzdGF0ZSlcblxuICByZXR1cm4gc3RhdGVcbn1cbiJdfQ==