我在Azure Devops上使用CI/CD开发了一个管道,用于在Azure Web应用服务上部署React应用。在本地,我使用的是.env文件,而此文件位于. gitignore上。我想知道如何设置.env以便在生产中阅读它。
xdnvmnnf1#
您可以查看以下文档:https://create-react-app.dev/docs/adding-custom-environment-variables/#adding-development-environment-variables-in-env.env文件应签入到源代码管理中(排除.env*.local)。如果您不想将.env文件签入DevOps,可以在管道变量中添加变量:
.env
.env*.local
此外,您可以参考以下案例获得更多建议:How to use environment variables in React app hosted in Azure
n53p2ov02#
许多与这个问题有关的解决方案可能不起作用,但我用下面的方法解决了它。然而,首先让我解释为什么其他解决方案可能(不应该)不起作用(如果我说错了请纠正我)
步骤1:将所有这些.env文件作为安全文件添加到Azure devops库。可以使用DownloadSecureFile@1管道任务(yml)在生成计算机中下载这些安全文件。这样,我们可以确保在管道中的任务yarn build --mode development之前在生成计算机中提供正确的.env文件。
DownloadSecureFile@1
yarn build --mode development
第二步:在你的azure yml管道中适当的地方添加以下任务。如果你想看到一个完整的例子,我已经创建了一个github repo**https://github.com/mail4hafij/react-yarn-azure-pipeline**。
# Download secure file from azure library - task: DownloadSecureFile@1 inputs: secureFile: '.env.development' # Copy the .env file - task: CopyFiles@2 inputs: sourceFolder: '$(Agent.TempDirectory)' contents: '**/*.env.development' targetFolder: '$(YOUR_DEFINED_PROJECT_ROOT_FOLDER_VARIABLE)' cleanTargetFolder: false
请注意,安全文件无法编辑,但您可以随时重新上传。
2条答案
按热度按时间xdnvmnnf1#
您可以查看以下文档:
https://create-react-app.dev/docs/adding-custom-environment-variables/#adding-development-environment-variables-in-env
.env
文件应签入到源代码管理中(排除.env*.local
)。如果您不想将
.env
文件签入DevOps,可以在管道变量中添加变量:此外,您可以参考以下案例获得更多建议:
How to use environment variables in React app hosted in Azure
n53p2ov02#
许多与这个问题有关的解决方案可能不起作用,但我用下面的方法解决了它。然而,首先让我解释为什么其他解决方案可能(不应该)不起作用(如果我说错了请纠正我)
所以我的解决方案是
步骤1:将所有这些.env文件作为安全文件添加到Azure devops库。可以使用
DownloadSecureFile@1
管道任务(yml)在生成计算机中下载这些安全文件。这样,我们可以确保在管道中的任务yarn build --mode development
之前在生成计算机中提供正确的.env文件。第二步:在你的azure yml管道中适当的地方添加以下任务。如果你想看到一个完整的例子,我已经创建了一个github repo**https://github.com/mail4hafij/react-yarn-azure-pipeline**。
请注意,安全文件无法编辑,但您可以随时重新上传。