node.js - 对于非本地、非生产环境的 NodeJS 项目,nwrl nx 环境文件不会被替换

标签 node.js nrwl-nx

我的 nx 工作区中基于 NodeJS 的服务器项目中有三个环境(本地、测试和生产)。我需要三个不同的 environment.ts 文件。

我的 NodeJS 项目的 workspace.json 中有以下配置:

"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

我无法找到哪个命令将获取测试配置。我已经尝试了多种方法但没有成功:

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 似乎不适用于除 prod 之外的 NodeJS 项目。

重现步骤

在包含一个服务器端项目(例如 api)的工作区中,执行以下操作: 1. 添加一个新文件 environment.test.ts,其模式与现有 environment.prod.ts 相同 2. 在 "api">"architect">"buiid">"configurations" block 下的 workspace.json 中,为“test”环境添加新配置看起来像现有的“生产”配置,只不过它有如下所示的“fileReplacements”数组:

               {
                  "replace": "apps/api/src/environments/environment.ts",
                  "with": "apps/api/src/environments/environment.test.ts"
                }

现在尝试进行一个构建,在构建过程中选择并用environment.test.ts 替换environment.ts。这似乎不可能。

我上面尝试过的命令对我没有帮助。这是我的 nx 版本。

nx --version
8.9.0
  1. 我在这里提出的相关问题:https://github.com/nrwl/nx/issues/2870
  2. 此处提出了类似的担忧:Using environment variables in nx based nodejs app

最佳答案

命令是nx build api --configuration=testnx build api --c=test

如果您使用 Nx Console VS Code 插件,您可以从构建菜单下的顶部选择选项之一。生成的命令与上面提到的完全相同。为了清楚起见,这是屏幕截图。

How to select environment in Nx Console VS Code GUI

关于node.js - 对于非本地、非生产环境的 NodeJS 项目,nwrl nx 环境文件不会被替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61294196/

相关文章:

angular - "Expected to be running in ' ProxyZone ', but it was not found."开 Jest

angular - 无法构建新的可构建 Angular 库

angular - 如何将@angular/fire 添加到 Nx 工作区(Angular 项目)?

node.js - Sequelize "raw = true"使用点更改 json 模型属性名称

html - 在html中用 Node 搜索mysql数据库

node.js - Webpack 在 linux 上找不到 lodash 子模块,但在 macOS 上可以正常工作

Node.js 永远模块 - 获取正在运行的脚本的路径?

angular - Jest 单元测试无法使用 WebStorm Jest Testrunner 启动

node.js - 如何创建指向 IBM Websphere MQ 中的队列的别名主题?