mirror of https://github.com/msgbyte/tailchat
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.
41 lines
1.2 KiB
JavaScript
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;
|
|
}
|
|
};
|