1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- const commonConfig = require("./build-utils/webpack.common");
- const webpackMerge = require("webpack-merge");
- const defaultEnv = { env: "prod" };
- /**
- *
- * @param {string|Array} addonsArg
- * @return {unknown[]}
- */
- const addons = addonsArg => {
- // Normalize array of addons (flatten).
- let addons = [].concat
- .apply([], [addonsArg])
- // If addons is undefined, filter it out.
- .filter(Boolean);
- return addons.map(addonName =>
- require(`./build-utils/addons/webpack.${addonName}.js`)
- );
- };
- // Export a function returning config instead of a static config.
- // The purpose is to allow use of the environment.
- module.exports = (env = defaultEnv) => {
- if (!env || !env.env) {
- throw new Error(
- "You must pass an -env.env flag into your build for webpack to work"
- );
- }
- console.log("Env: ", env);
- const envConfig = require(`./build-utils/webpack.${env.env}`);
- // The rightmost overwrites (merges into) its left sibling.
- const mergedConfig = webpackMerge(
- commonConfig,
- envConfig,
- ...addons(env.addons)
- );
- console.log(mergedConfig);
- return mergedConfig;
- };
|