react-torch
Version:
A lib to server-side render with react.
74 lines (73 loc) • 2.38 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var path_1 = __importDefault(require("path"));
var esbuild_loader_1 = require("esbuild-loader");
var utils_1 = require("../../internal/utils");
var index_1 = require("../../index");
function getConfig(config) {
var entry = {
routes: config.src,
document: config.document,
};
if (config.middleware) {
entry.middleware = config.middleware;
}
return {
target: 'node',
mode: 'production',
context: config.src,
entry: entry,
output: {
path: path_1.default.join(config.dir, index_1.TORCH_DIR, index_1.TORCH_SERVER_DIR),
filename: '[name].js',
libraryTarget: 'commonjs2',
},
devtool: 'source-map',
module: {
strictExportPresence: true,
rules: [
{
test: /\.(js|jsx)$/,
loader: 'esbuild-loader',
options: {
loader: 'jsx',
target: 'es2015',
jsxFactory: 'React.createElement',
jsxFragment: 'React.Fragment',
},
},
{
test: /\.(ts|tsx)$/,
loader: 'esbuild-loader',
options: {
loader: 'tsx',
target: 'es2015',
jsxFactory: 'React.createElement',
jsxFragment: 'React.Fragment',
},
},
],
},
optimization: {
minimize: true,
minimizer: [
new esbuild_loader_1.ESBuildMinifyPlugin({
target: 'es2015',
}),
],
},
performance: {
hints: 'error',
maxEntrypointSize: 400000,
},
resolve: {
modules: ['node_modules'],
extensions: ['.js', '.jsx', '.json', '.mjs', '.ts', '.tsx'],
},
externals: (0, utils_1.getExternals)(config.dir).concat('react-torch/client'),
};
}
exports.default = getConfig;