【问题标题】:Use environment variable inside nx project.json在 nx project.json 中使用环境变量
【发布时间】:2023-02-24 17:12:06
【问题描述】:

我使用 nx 作为我的 monorepo 管理工具,它包含打字稿 api 和角度前端。
现在我正在尝试让我的项目在github codespaces 中运行。

当我尝试为它们提供服务时,除角度应用程序外,一切正常。
我收到错误 Invalid Host/Origin header。 可以使用 --public-host 标志解决此问题。

这就是我现在可以使用 codespaces 环境变量CODESPACE_NAME 和 nx cli 为我的角度应用程序提供服务的方式:

npx nx serve application --publicHost=${CODESPACE_NAME}-4080.githubpreview.dev:443

我现在的问题是,是否可以在project.json 中配置一个新目标来像npx nx run application:codespaces 一样为我的应用程序提供服务?

我已经尝试创建一个新目标,但它没有解析环境变量:

...
 "codespaces": {
  "executor": "@angular-devkit/build-angular:dev-server",
  "configurations": {
    "production": {
      "browserTarget": "console:build:production"
    },
    "development": {
      "browserTarget": "console:build:development"
    }
  },
  "defaultConfiguration": "development",
  "options": {
    "publicHost": "${CODESPACE_NAME}-4080.githubpreview.dev:443",
    "port": 4080
  }
},
...

【问题讨论】:

    标签: angular nx-workspace


    【解决方案1】:

    一种选择是使用 described here 方法预处理 JSON 文件。

        export FOO=foobar 
        echo {"foo": "$FOO"} > myjson.json 
        envsubst < myjson.json
    
        output: {foo: foobar}
    

    【讨论】:

      【解决方案2】:

      正如@Jonathan 所暗示的那样,选项字符串没有经过预处理。

      但是,如果您使用自定义运行命令,那么您将有权访问 .env 文件中声明的所有环境变量,如 docs 此处所述。

      例子:

      "echo": {
          "executor": "nx:run-commands",
          "options": {
              "command": "echo $SOME_ENV_VAR",
          }
      },
      

      【讨论】:

        猜你喜欢
        • 2022-06-22
        • 2022-12-19
        • 1970-01-01
        • 2019-07-22
        • 2021-10-25
        • 2022-12-18
        • 1970-01-01
        • 1970-01-01
        • 2019-11-14
        相关资源
        最近更新 更多