В моем проекте сервера на основе NodeJS в моей рабочей области nx есть три среды (локальная, тестовая и расширенная). Мне требуются три разных environment.ts
файла.
У меня есть следующая конфигурация в моем workspace.json
для моего NodeJS проекта:
"configurations": {
"production": {
"optimization": true,
"extractLicenses": true,
"inspect": false,
"fileReplacements": [
{
"replace": "apps/api/src/environments/environment.ts",
"with": "apps/api/src/environments/environment.prod.ts"
}
]
},
"test": {
"optimization": true,
"extractLicenses": true,
"inspect": false,
"fileReplacements": [
{
"replace": "apps/api/src/environments/environment.ts",
"with": "apps/api/src/environments/environment.test.ts"
}
]
}
}
},
Файлы среды находятся в одной иерархии:
![The environment files sit in the same hierarchy](https://i.stack.imgur.com/rSr6X.png)
Я не могу найти, какая команда подберет конфигурацию test
. Я пробовал несколько вещей, которые не работали:
nx build api --test # does not work
NODE_ENV=test nx build api # does not work
NODE_ENV=test nx build api --test # does not work
nx build api -c=test # does not work
nx build api -c test # does not work
nx build api --prod # works for prod env file
Ожидаемое поведение
Я должен иметь возможность выбирать между различными файлами среды во время сборки.
Текущее поведение
fileReplacement
, похоже, не работает для проекта NodeJS для чего-либо, кроме prod
.
Шаги для воспроизведения
В вашем рабочем пространстве с одним проектом на стороне сервера, скажем api, сделайте следующее: 1. Добавьте новый файл environment.test.ts
по тому же шаблону, что и существующий environment.prod.ts
2. В workspace.json
под блоком "api" > "architect" > "buiid" > "configurations"
добавьте новую конфигурацию для «теста» среда, которая выглядит как существующая «производственная» конфигурация, за исключением того, что она имеет массив "fileReplacements"
, который выглядит следующим образом:
{
"replace": "apps/api/src/environments/environment.ts",
"with": "apps/api/src/environments/environment.test.ts"
}
Теперь попробуйте выполнить сборку, которая подхватывает и заменяет environment.ts на environment.test .ts во время сборки. Кажется, это невозможно.
Команды, которые я пробовал выше, мне не помогли. Вот моя версия nx.
nx --version
8.9.0
- Соответствующая проблема, которую я поднял здесь: https://github.com/nrwl/nx/issues/2870
- Подобные проблемы были подняты здесь: Использование среды переменные в nx nodejs app