UNPKG

@craco/craco

Version:

Create React App Configuration Override, an easy and comprehensible configuration layer for create-react-app.

43 lines (32 loc) 1.43 kB
const { mergeWebpackConfig } = require("./merge-webpack-config"); const { setArgs } = require("../../args"); const { processCracoConfig } = require("../../config"); const { loadWebpackProdConfig, loadWebpackDevConfig, getCraPaths } = require("../../cra"); function createWebpackDevConfig(callerCracoConfig, callerContext, options) { return createWebpackConfig(callerCracoConfig, callerContext, loadWebpackDevConfig, "development", options); } function createWebpackProdConfig(callerCracoConfig, callerContext, options) { return createWebpackConfig(callerCracoConfig, callerContext, loadWebpackProdConfig, "production", options); } function createWebpackConfig(callerCracoConfig, callerContext = {}, loadWebpackConfig, env, options = {}) { if (!callerCracoConfig) { throw new Error("craco: 'cracoConfig' is required."); } if (!process.env.NODE_ENV) { process.env.NODE_ENV = env; } setArgs(options); const context = { env: process.env.NODE_ENV, ...callerContext }; const cracoConfig = processCracoConfig(callerCracoConfig, context); context.paths = getCraPaths(cracoConfig); const craWebpackConfig = loadWebpackConfig(cracoConfig); const resultingWebpackConfig = mergeWebpackConfig(cracoConfig, craWebpackConfig, context); return resultingWebpackConfig; } module.exports = { createWebpackDevConfig, createWebpackProdConfig };