import { getProcessArg } from '../utils/processArg/getProcessArg' import { removeProcessArg } from '../utils/processArg/removeProcessArg' import { updateReactScriptConfigPath } from '../utils/react-scripts/updateReactScriptConfigPath' import { updateReactScriptConfigWebpack } from '../utils/react-scripts/updateReactScriptConfigWebpack' // react-scripts needs this process.env.NODE_ENV = 'development' export default (processArg: any[]) => { const sourceFolder: string = getProcessArg(processArg, 'src', 'src') removeProcessArg(processArg, 'src') const extendWebpackFile: string = getProcessArg(processArg, 'extendWebpack', undefined) removeProcessArg(processArg, 'extendWebpack') const publicFolder: string = getProcessArg(processArg, 'public', 'public') removeProcessArg(processArg, 'public') const paths = updateReactScriptConfigPath(sourceFolder, publicFolder) const webpackConfigDev = updateReactScriptConfigWebpack(paths, 'dev', extendWebpackFile) // update cache for next running script require.cache[require.resolve('react-scripts/config/webpack.config.dev')] = { exports: webpackConfigDev } require.cache[require.resolve('react-scripts/config/paths')] = { exports: paths } require('react-scripts/scripts/start.js') }