Repository URL to install this package:
|
Version:
3.5.2 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
/* eslint complexity: "OFF" */
/* eslint max-statements: "OFF" */
const params_1 = tslib_1.__importDefault(require("../.plugins/params"));
const plugins = tslib_1.__importStar(require("../.plugins"));
const resolveToRoot_1 = require("../resolveToRoot");
const oneConfig_1 = tslib_1.__importDefault(require("../oneConfig"));
const bundlePaths_1 = tslib_1.__importDefault(require("./bundlePaths"));
function decorateConfig(buildOptions) {
buildOptions.client = buildOptions.bundles.client;
buildOptions.server = buildOptions.bundles.server;
// log.quick(buildOptions)
// This is either our "server" or "client" bundle.
// Otherwise it must be an additional node bundle.
buildOptions.bundleConfig = buildOptions.isServer
? buildOptions.bundles.server
: buildOptions.isClient
? buildOptions.bundles.client
: {};
bundlePaths_1.default(buildOptions);
}
// https://github.com/tessin/tessin-mini/blob/master/webpack/ManifestPlugin.js#L1
// https://github.com/tessin/tessin-mini/blob/master/webpack/webpack.config.js
function webpackConfigFactory(someBuildOptions) {
const buildOptions = Object.assign({
// ...buildOptions,
// getConfigFor,
resolveToRoot: resolveToRoot_1.resolveToRoot }, oneConfig_1.default, params_1.default(someBuildOptions));
decorateConfig(buildOptions);
const { target, isClient, isDev } = buildOptions;
const webpackConfig = {
// Define our entry chunks for our bundle.
entry: {},
// Bundle output configuration.
output: {},
mode: isDev ? 'development' : 'production',
target: isClient ? 'web' : 'node',
node: {},
devtool: 'none',
performance: {},
resolve: {},
externals: [],
plugins: [],
module: {
rules: [],
},
};
// require('fliplog').quick(merged)
Object.keys(plugins).forEach(name => {
const plugin = plugins[name];
if (typeof plugin !== 'function') {
console.warn(name);
return;
}
plugin(webpackConfig, buildOptions);
});
const webpackDevServerOptions = {
watch: false,
};
if (isClient && isDev) {
delete webpackDevServerOptions.watch;
webpackDevServerOptions.watchOptions = {
aggregateTimeout: 500,
poll: 1000,
};
}
// Apply the configuration middleware.
return webpackConfig;
}
exports.webpackConfigFactory = webpackConfigFactory;
//# sourceMappingURL=webpackConfigFactory.js.map