Файлы среды nwrl nx не заменяются для проекта NodeJS для нелокальных сред, не являющихся продуктами - PullRequest
0 голосов
/ 18 апреля 2020

В моем проекте сервера на основе 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

Я не могу найти, какая команда подберет конфигурацию 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
  1. Соответствующая проблема, которую я поднял здесь: https://github.com/nrwl/nx/issues/2870
  2. Подобные проблемы были подняты здесь: Использование среды переменные в nx nodejs app

1 Ответ

0 голосов
/ 21 апреля 2020

Команда nx build api --configuration=test

...