Node.js Azure静态Web应用节点JS环境变量
我正在使用Azure静态Web应用程序服务和Azure DevOps管道部署NodeJS应用程序。管道建设进展顺利。现在我必须使用env变量为后端定义一个URL,但没有成功Node.js Azure静态Web应用节点JS环境变量,node.js,azure,azure-devops,environment-variables,azure-pipelines,Node.js,Azure,Azure Devops,Environment Variables,Azure Pipelines,我正在使用Azure静态Web应用程序服务和Azure DevOps管道部署NodeJS应用程序。管道建设进展顺利。现在我必须使用env变量为后端定义一个URL,但没有成功 trigger: - develop jobs: - job: JobTest pool: vmImage: ubuntu-latest variables: - name: BACKEND_URL value: https://<some_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
触发器:
-发展
工作:
-工作:工作测试
游泳池:
vmImage:ubuntu最新版本
变量:
-名称:后端URL
值:https://
-名称:System.Debug
值:true
步骤:
-任务:AzureStaticWebApp@0
投入:
应用程序位置:“/”
api_位置:“
输出位置:“dist”
环境:
后端URL:$(后端URL)
azure\静态\ web\应用程序\ api\令牌:$(部署\令牌)
-bash:echo$(后端URL)
-bash:echo$PWD
从NodeJS代码中,在“/app/src/models/config.ts”文件中,我得到了如下信息:
export const BACKEND_URL=process.env.BACKEND_URL
如果我用实际的URL更改process.env.BACKEND\u URL,它将正常工作
此外,在Azure管道中,此任务正在使用构建系统
问题是如何在代码中使用管道中的env?静态Web应用程序不能使用后端变量。
可以考虑使用<代码> .Env>代码>文件来配置环境变量。格式如“
name=value
”(不带引号)
并在要调用环境变量的文件中安装dotenv
,通过process.env
访问它们
看看这篇文章:
我的另一个答案是:为了帮助改进这个问题,我添加了一个答案:
env变量不能与azure静态Web App一起使用azure管道。而且。我认为该任务目前不支持其他环境变量。在这里创建了一个问题,以解决如何设置的问题。但我猜它不会像@Anthony Chu指出的那样与静态应用程序一起工作。我在
/app/build/
目录中有.env.sample
文件。我还有bash脚本cp./build/.env.sample.env
,将从/app/
目录中的package.json
文件执行。本地工作正常,但当我尝试用Azure管道构建它时,我得到一个错误,该文件不存在。这就是为什么我把变量放在env中,它在那里,但它从来没有这样渲染或设置过。