// @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 } }