【发布时间】:2022-12-11 16:04:28
【问题描述】:
我有一个简单的 ASP.NET Core React JS Web 应用程序。我一直将它直接发布到 Azure 就好了。
最近我介绍了第二个环境(prod vs dev)。
如何使用 .env 将其发布到 Prod,并使用 .env.dev 将其发布到 Dev?
笔记:
- 我使用 VS Enterprise 构建。
- 我使用 VS Enterprise 进行部署(右键单击 -> 发布)。
- 我知道我可以更新 packages.json 中的“脚本”部分。但是我不相信当我从 VS IDE 发布时会调用这个脚本。
也许有办法指定脚本??
例如:build:dev 将使用 .env.development 进行构建,而 build:prod 将使用 .env 进行构建
谢谢
更新
我在 .csproj 文件中找到了这个:
<Target Name="PublishRunWebpack" AfterTargets="ComputeFilesToPublish">
<!-- As part of publishing, ensure the JS resources are freshly built in production mode -->
<Exec WorkingDirectory="$(SpaRoot)" Command="npm install" />
<Exec WorkingDirectory="$(SpaRoot)" Command="npm run build" />
<!-- Include the newly-built files in the publish output -->
<ItemGroup>
<DistFiles Include="$(SpaRoot)build\**" />
<ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
<RelativePath>wwwroot\%(RecursiveDir)%(FileName)%(Extension)</RelativePath>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
</ResolvedFileToPublish>
</ItemGroup>
</Target>
【问题讨论】:
-
如果我的理解正确,那么您似乎想要做 Azure DevOps、Microsoft CI/CD 管道所做的事情,希望在测试阶段生成工件,在测试完成后,通过所有测试(或批准)移动到暂存然后到生产(再次经批准)。我的例子与你的不同。
标签: reactjs azure visual-studio asp.net-core .env