react-static
Version:
A progressive static site generator for React
83 lines (72 loc) • 11 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = _default;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _webpack = _interopRequireDefault(require("webpack"));
var _resolveFrom = _interopRequireDefault(require("resolve-from"));
var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
var _caseSensitivePathsWebpackPlugin = _interopRequireDefault(require("case-sensitive-paths-webpack-plugin"));
var _extractCssChunksWebpackPlugin = _interopRequireDefault(require("extract-css-chunks-webpack-plugin"));
var _path = _interopRequireDefault(require("path"));
var _rules = _interopRequireDefault(require("./rules"));
function _default(_ref) {
var config = _ref.config;
var _config$paths = config.paths,
DIST = _config$paths.DIST,
NODE_MODULES = _config$paths.NODE_MODULES,
SRC = _config$paths.SRC,
HTML_TEMPLATE = _config$paths.HTML_TEMPLATE;
process.env.REACT_STATIC_BASE_PATH = config.basePath;
process.env.REACT_STATIC_PUBLIC_PATH = config.publicPath;
process.env.REACT_STATIC_ASSETS_PATH = config.assetsPath;
return {
mode: 'development',
optimization: {
noEmitOnErrors: true,
concatenateModules: true
},
context: _path["default"].resolve(__dirname, '../../../node_modules'),
entry: ['react-hot-loader/patch'].concat((0, _toConsumableArray2["default"])(config.disableRuntime ? [] : [require.resolve('../../bootstrapPlugins'), require.resolve('../../bootstrapTemplates')]), [config.entry]).filter(Boolean),
output: {
filename: '[name].js',
// never hash dev code
chunkFilename: 'templates/[name].js',
path: DIST,
publicPath: process.env.REACT_STATIC_ASSETS_PATH || '/'
},
module: {
rules: (0, _rules["default"])({
config: config,
stage: 'dev'
}),
strictExportPresence: true
},
resolve: {
modules: [NODE_MODULES, SRC, DIST].concat((0, _toConsumableArray2["default"])([NODE_MODULES, SRC, DIST].map(function (d) {
return _path["default"].resolve(__dirname, d);
})), ['node_modules']),
extensions: ['.wasm', '.mjs', '.js', '.json', '.jsx'],
alias: {
react$: (0, _resolveFrom["default"])(NODE_MODULES, 'react'),
'react-dom$': (0, _resolveFrom["default"])(NODE_MODULES, 'react-dom'),
'react-universal-component': (0, _resolveFrom["default"])(__dirname, 'react-universal-component'),
__react_static_root__: config.paths.ROOT,
// This is here so HMR modules use the same emitter instance.
// Likely this is only needed for locally linked dev on RS, but still...
'webpack/hot/emitter': (0, _resolveFrom["default"])(__dirname, 'webpack/hot/emitter')
}
},
plugins: [new _webpack["default"].EnvironmentPlugin(process.env), new _htmlWebpackPlugin["default"]({
inject: true,
template: "!!raw-loader!".concat(HTML_TEMPLATE)
}), new _webpack["default"].HotModuleReplacementPlugin(), new _webpack["default"].NamedModulesPlugin(), new _caseSensitivePathsWebpackPlugin["default"](), new _extractCssChunksWebpackPlugin["default"]({
filename: '[name].css'
}) // never hash dev code
],
devtool: 'cheap-module-source-map'
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0aWMvd2VicGFjay93ZWJwYWNrLmNvbmZpZy5kZXYuanMiXSwibmFtZXMiOlsiY29uZmlnIiwicGF0aHMiLCJESVNUIiwiTk9ERV9NT0RVTEVTIiwiU1JDIiwiSFRNTF9URU1QTEFURSIsInByb2Nlc3MiLCJlbnYiLCJSRUFDVF9TVEFUSUNfQkFTRV9QQVRIIiwiYmFzZVBhdGgiLCJSRUFDVF9TVEFUSUNfUFVCTElDX1BBVEgiLCJwdWJsaWNQYXRoIiwiUkVBQ1RfU1RBVElDX0FTU0VUU19QQVRIIiwiYXNzZXRzUGF0aCIsIm1vZGUiLCJvcHRpbWl6YXRpb24iLCJub0VtaXRPbkVycm9ycyIsImNvbmNhdGVuYXRlTW9kdWxlcyIsImNvbnRleHQiLCJwYXRoIiwicmVzb2x2ZSIsIl9fZGlybmFtZSIsImVudHJ5IiwiZGlzYWJsZVJ1bnRpbWUiLCJyZXF1aXJlIiwiZmlsdGVyIiwiQm9vbGVhbiIsIm91dHB1dCIsImZpbGVuYW1lIiwiY2h1bmtGaWxlbmFtZSIsIm1vZHVsZSIsInJ1bGVzIiwic3RhZ2UiLCJzdHJpY3RFeHBvcnRQcmVzZW5jZSIsIm1vZHVsZXMiLCJtYXAiLCJkIiwiZXh0ZW5zaW9ucyIsImFsaWFzIiwicmVhY3QkIiwiX19yZWFjdF9zdGF0aWNfcm9vdF9fIiwiUk9PVCIsInBsdWdpbnMiLCJ3ZWJwYWNrIiwiRW52aXJvbm1lbnRQbHVnaW4iLCJIdG1sV2VicGFja1BsdWdpbiIsImluamVjdCIsInRlbXBsYXRlIiwiSG90TW9kdWxlUmVwbGFjZW1lbnRQbHVnaW4iLCJOYW1lZE1vZHVsZXNQbHVnaW4iLCJDYXNlU2Vuc2l0aXZlUGF0aHNQbHVnaW4iLCJFeHRyYWN0Q3NzQ2h1bmtzIiwiZGV2dG9vbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFFZSx3QkFBcUI7QUFBQSxNQUFWQSxNQUFVLFFBQVZBLE1BQVU7QUFBQSxzQkFDaUJB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UUFBUSx5QkFBa0IxQyxhQUFsQjtBQUZZLEtBQXRCLENBRk8sRUFNUCxJQUFJc0Msb0JBQVFLLDBCQUFaLEVBTk8sRUFPUCxJQUFJTCxvQkFBUU0sa0JBQVosRUFQTyxFQVFQLElBQUlDLDJDQUFKLEVBUk8sRUFTUCxJQUFJQyx5Q0FBSixDQUFxQjtBQUFFdkIsTUFBQUEsUUFBUSxFQUFFO0FBQVosS0FBckIsQ0FUTyxDQVMyQztBQVQzQyxLQWpESjtBQTRETHdCLElBQUFBLE9BQU8sRUFBRTtBQTVESixHQUFQO0FBOEREIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHdlYnBhY2sgZnJvbSAnd2VicGFjaydcbmltcG9ydCByZXNvbHZlRnJvbSBmcm9tICdyZXNvbHZlLWZyb20nXG5pbXBvcnQgSHRtbFdlYnBhY2tQbHVnaW4gZnJvbSAnaHRtbC13ZWJwYWNrLXBsdWdpbidcbmltcG9ydCBDYXNlU2Vuc2l0aXZlUGF0aHNQbHVnaW4gZnJvbSAnY2FzZS1zZW5zaXRpdmUtcGF0aHMtd2VicGFjay1wbHVnaW4nXG5pbXBvcnQgRXh0cmFjdENzc0NodW5rcyBmcm9tICdleHRyYWN0LWNzcy1jaHVua3Mtd2VicGFjay1wbHVnaW4nXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuXG5pbXBvcnQgcnVsZXMgZnJvbSAnLi9ydWxlcydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24oeyBjb25maWcgfSkge1xuICBjb25zdCB7IERJU1QsIE5PREVfTU9EVUxFUywgU1JDLCBIVE1MX1RFTVBMQVRFIH0gPSBjb25maWcucGF0aHNcblxuICBwcm9jZXNzLmVudi5SRUFDVF9TVEFUSUNfQkFTRV9QQVRIID0gY29uZmlnLmJhc2VQYXRoXG4gIHByb2Nlc3MuZW52LlJFQUNUX1NUQVRJQ19QVUJMSUNfUEFUSCA9IGNvbmZpZy5wdWJsaWNQYXRoXG4gIHByb2Nlc3MuZW52LlJFQUNUX1NUQVRJQ19BU1NFVFNfUEFUSCA9IGNvbmZpZy5hc3NldHNQYXRoXG5cbiAgcmV0dXJuIHtcbiAgICBtb2RlOiAnZGV2ZWxvcG1lbnQnLFxuICAgIG9wdGltaXphdGlvbjoge1xuICAgICAgbm9FbWl0T25FcnJvcnM6IHRydWUsXG4gICAgICBjb25jYXRlbmF0ZU1vZHVsZXM6IHRydWUsXG4gICAgfSxcbiAgICBjb250ZXh0OiBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vLi4vLi4vbm9kZV9tb2R1bGVzJyksXG4gICAgZW50cnk6IFtcbiAgICAgICdyZWFjdC1ob3QtbG9hZGVyL3BhdGNoJyxcbiAgICAgIC4uLihjb25maWcuZGlzYWJsZVJ1bnRpbWVcbiAgICAgICAgPyBbXVxuICAgICAgICA6IFtcbiAgICAgICAgICAgIHJlcXVpcmUucmVzb2x2ZSgnLi4vLi4vYm9vdHN0cmFwUGx1Z2lucycpLFxuICAgICAgICAgICAgcmVxdWlyZS5yZXNvbHZlKCcuLi8uLi9ib290c3RyYXBUZW1wbGF0ZXMnKSxcbiAgICAgICAgICBdKSxcbiAgICAgIGNvbmZpZy5lbnRyeSxcbiAgICBdLmZpbHRlcihCb29sZWFuKSxcbiAgICBvdXRwdXQ6IHtcbiAgICAgIGZpbGVuYW1lOiAnW25hbWVdLmpzJywgLy8gbmV2ZXIgaGFzaCBkZXYgY29kZVxuICAgICAgY2h1bmtGaWxlbmFtZTogJ3RlbXBsYXRlcy9bbmFtZV0uanMnLFxuICAgICAgcGF0aDogRElTVCxcbiAgICAgIHB1YmxpY1BhdGg6IHByb2Nlc3MuZW52LlJFQUNUX1NUQVRJQ19BU1NFVFNfUEFUSCB8fCAnLycsXG4gICAgfSxcbiAgICBtb2R1bGU6IHtcbiAgICAgIHJ1bGVzOiBydWxlcyh7IGNvbmZpZywgc3RhZ2U6ICdkZXYnIH0pLFxuICAgICAgc3RyaWN0RXhwb3J0UHJlc2VuY2U6IHRydWUsXG4gICAgfSxcbiAgICByZXNvbHZlOiB7XG4gICAgICBtb2R1bGVzOiBbXG4gICAgICAgIE5PREVfTU9EVUxFUyxcbiAgICAgICAgU1JDLFxuICAgICAgICBESVNULFxuICAgICAgICAuLi5bTk9ERV9NT0RVTEVTLCBTUkMsIERJU1RdLm1hcChkID0+IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsIGQpKSxcbiAgICAgICAgJ25vZGVfbW9kdWxlcycsXG4gICAgICBdLFxuICAgICAgZXh0ZW5zaW9uczogWycud2FzbScsICcubWpzJywgJy5qcycsICcuanNvbicsICcuanN4J10sXG4gICAgICBhbGlhczoge1xuICAgICAgICByZWFjdCQ6IHJlc29sdmVGcm9tKE5PREVfTU9EVUxFUywgJ3JlYWN0JyksXG4gICAgICAgICdyZWFjdC1kb20kJzogcmVzb2x2ZUZyb20oTk9ERV9NT0RVTEVTLCAncmVhY3QtZG9tJyksXG4gICAgICAgICdyZWFjdC11bml2ZXJzYWwtY29tcG9uZW50JzogcmVzb2x2ZUZyb20oXG4gICAgICAgICAgX19kaXJuYW1lLFxuICAgICAgICAgICdyZWFjdC11bml2ZXJzYWwtY29tcG9uZW50J1xuICAgICAgICApLFxuICAgICAgICBfX3JlYWN0X3N0YXRpY19yb290X186IGNvbmZpZy5wYXRocy5ST09ULFxuICAgICAgICAvLyBUaGlzIGlzIGhlcmUgc28gSE1SIG1vZHVsZXMgdXNlIHRoZSBzYW1lIGVtaXR0ZXIgaW5zdGFuY2UuXG4gICAgICAgIC8vIExpa2VseSB0aGlzIGlzIG9ubHkgbmVlZGVkIGZvciBsb2NhbGx5IGxpbmtlZCBkZXYgb24gUlMsIGJ1dCBzdGlsbC4uLlxuICAgICAgICAnd2VicGFjay9ob3QvZW1pdHRlcic6IHJlc29sdmVGcm9tKF9fZGlybmFtZSwgJ3dlYnBhY2svaG90L2VtaXR0ZXInKSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBwbHVnaW5zOiBbXG4gICAgICBuZXcgd2VicGFjay5FbnZpcm9ubWVudFBsdWdpbihwcm9jZXNzLmVudiksXG4gICAgICBuZXcgSHRtbFdlYnBhY2tQbHVnaW4oe1xuICAgICAgICBpbmplY3Q6IHRydWUsXG4gICAgICAgIHRlbXBsYXRlOiBgISFyYXctbG9hZGVyISR7SFRNTF9URU1QTEFURX1gLFxuICAgICAgfSksXG4gICAgICBuZXcgd2VicGFjay5Ib3RNb2R1bGVSZXBsYWNlbWVudFBsdWdpbigpLFxuICAgICAgbmV3IHdlYnBhY2suTmFtZWRNb2R1bGVzUGx1Z2luKCksXG4gICAgICBuZXcgQ2FzZVNlbnNpdGl2ZVBhdGhzUGx1Z2luKCksXG4gICAgICBuZXcgRXh0cmFjdENzc0NodW5rcyh7IGZpbGVuYW1lOiAnW25hbWVdLmNzcycgfSksIC8vIG5ldmVyIGhhc2ggZGV2IGNvZGVcbiAgICBdLFxuICAgIGRldnRvb2w6ICdjaGVhcC1tb2R1bGUtc291cmNlLW1hcCcsXG4gIH1cbn1cbiJdfQ==