Я использовал приложение create-response-app для создания приложения и выбрал конфигурацию. В webpack.config.dev.js
и webpack.config.prod.js
я настроил NormalModuleReplacementPlugin
следующим образом:
new webpack.NormalModuleReplacementPlugin(/(.*)CUSTOMER(\.*)/, function(resource) {
const customerName = process.env.REACT_APP_CUSTOMER;
resource.request = resource.request.replace(/CUSTOMER/, customerName);
})
Целью этого является замена импорта, такого как
import config from '../config/customer/CUSTOMER';
с
import config from '../config/customer/foo';
когда значение переменной REACT_APP_CUSTOMER
задано как "foo".
Это отлично работает, когда приложение запускается, но у меня есть некоторые тесты Mocha, которые запускаются через скрипт test-mocha
в package.json
"scripts": {
"test-mocha": "NODE_ENV=test node_modules/.bin/mocha --require babel-register --recursive test"
}
Когда этот тест выполняется, замена импорта не происходит. Кажется, что одно из следующих решений проблемы:
- настройте
NormalModuleReplacementPlugin
который будет использоваться при выполнении тестов - найти способ предоставить макет для
config
при выполнении тестов