You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailchat/web/e2e/cypress/plugins/utils/tryLoadWebpackConfig.js

41 lines
1.2 KiB
JavaScript

// @ts-check
const debug = require('debug')('@cypress/react');
/** @type {(configPath: string) => null | import('webpack').Configuration } */
module.exports = function tryLoadWebpackConfig(webpackConfigPath) {
debug('trying to load webpack config from %s', webpackConfigPath);
// Do this as the first thing so that any code reading it knows the right env.
const envName = 'test';
// @ts-expect-error override env is possible
process.env.NODE_ENV = envName;
process.env.BABEL_ENV = envName;
try {
let webpackOptions = require(webpackConfigPath);
if (webpackOptions.default) {
// we probably loaded TS file
debug('loaded webpack options has .default - taking that as the config');
webpackOptions = webpackOptions.default;
}
if (typeof webpackOptions === 'function') {
debug('calling webpack function with environment "%s"', envName);
webpackOptions = webpackOptions('development');
}
debug('webpack options: %o', webpackOptions);
return webpackOptions;
} catch (err) {
debug('could not load react-scripts webpack');
debug('error %s', err.message);
debug(err);
console.error(err);
return null;
}
};