Azure 静态 Web 应用程序 NodeJS 环境变量

7

我正在使用Azure静态Web应用服务和Azure DevOps管道来部署NodeJS应用程序。管道和构建都很顺利。现在,我需要使用环境变量定义后端的URL,但是没有成功。

trigger:
- develop

jobs:
  - job: JobTest
    pool:
      vmImage: ubuntu-latest

    variables:
    - name: BACKEND_URL
      value: https://<some_url>
    - name: System.Debug
      value: true
    steps:
    - task: AzureStaticWebApp@0
      inputs:
        app_location: "/" 
        api_location: ""
        output_location: "dist"

      env:
        BACKEND_URL: $(BACKEND_URL)
        azure_static_web_apps_api_token: $(deployment_token)
    - bash: echo $(BACKEND_URL)
    - bash: echo $PWD

在 NodeJS 代码中,在 "/app/src/models/config.ts" 文件中,我有这个:

export const BACKEND_URL = process.env.BACKEND_URL

如果我将 process.env.BACKEND_URL 更改为实际的 URL,它就可以正常工作。

此外,Azure 管道此任务正在使用 https://github.com/microsoft/Oryx 构建系统。

问题是如何在代码中使用来自管道的 env 变量?


我认为该任务目前不支持额外的环境变量。在此处创建了一个问题以解决 https://github.com/Azure/static-web-apps/issues/392 - Anthony Chu
2个回答

2

这就是设置的方式。但我猜静态应用程序似乎无法正常工作,正如@Anthony Chu所指出的那样。我在/app/build/目录中有.env.sample文件。并且我还有bash脚本cp ./build/.env.sample .env要从/app/目录中的package.json文件执行。在本地工作正常,但当我尝试使用Azure Pipeline构建它时,我会收到文件不存在的错误。所以这就是为什么我将变量放在环境变量中,但它从未呈现或设置。 - IvanAK
@IvanAK 我也有同样的问题。你找到任何解决方法了吗? - M Karimi
@M Karimi,我没有找到任何解决方案,如果我没记错的话,那时候的情况是,如果你使用这种管道直接构建和部署到 Web 应用程序中,会出现问题。其他管道或应用程序没有这个问题。尝试使用 GitHub actions 和工作流程。 - IvanAK

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接