Angularjs 如何根据生成配置在发布之前重写文件?

Angularjs 如何根据生成配置在发布之前重写文件?,angularjs,gulp,asp.net-core-mvc,gulp-replace,Angularjs,Gulp,Asp.net Core Mvc,Gulp Replace,我有一个新的asp.net V5应用程序,它实际上只是一个静态的angular站点,我正在尝试进行与web.config等效的转换。My app.js文件定义了一个常量,即指向api url的serviceUrl(不在同一站点中) 我使用了gulpreplace并为每个构建目标创建了任务,这些任务成功地替换了需要替换的单个字符串 我遇到的问题是,我需要能够根据选择的构建配置更改该服务url,以便我们能够自动化部署等,而不必为每个不同的目标更改该url。(即开发人员访问devapi.xxx.com

我有一个新的asp.net V5应用程序,它实际上只是一个静态的angular站点,我正在尝试进行与web.config等效的转换。My app.js文件定义了一个常量,即指向api url的serviceUrl(不在同一站点中)

我使用了gulpreplace并为每个构建目标创建了任务,这些任务成功地替换了需要替换的单个字符串

我遇到的问题是,我需要能够根据选择的构建配置更改该服务url,以便我们能够自动化部署等,而不必为每个不同的目标更改该url。(即开发人员访问devapi.xxx.com,发布人员访问etc)

我已经找到了预发布脚本部分,但它似乎不允许我根据配置进行具体说明。配置部分似乎不允许我指定要运行的脚本

所以我的问题是,如何执行预发布步骤,根据配置查找并替换上下文中的字符串?

您应该看看

基本上,您的
appsettings.json
就是您想要的。在你的
Startup.cs
中,你应该有这样一行代码:

var builder=new ConfigurationBuilder()
.AddJsonFile(“appsettings.json”)
.AddJsonFile($“appsettings.{env.EnvironmentName}.json”,可选:true);
默认情况下,在Visual Studio中,
ASPNET_ENV
环境变量将设置为
Development
。当不是由Visual Studio运行时,它将默认为
Production

因此,根据定义,在生产环境中运行应用程序时,它将自动使用
appsettings.production.json
覆盖
appsettings.json

该文件当然是可选的,可以由您的IT部门保存,其中包含所有宝贵的密码


但是,如果您正在存储密码和连接字符串,我强烈建议您阅读。

好的,可以,但我不知道如何使用这些信息更新js文件,因此以某种方式加载js文件?这里没有mvc,所以我不能从mvc中注入它。我的问题是我不知道如何将它输入到js文件中,除非你在已经交换的发布脚本上这样说,我可以将它加载到gulp中并读取值?你可以生成一个包含URL的JSON。非常值得。:-)是的,但是如何基于构建配置在上下文中进行呢?我不能在gulp中说出构建配置是什么,也不能尽可能地注入它?检查gulp和环境变量。由于它是
ASPNET\u ENV
Production
,因此需要一个包来检索它。不管怎样,你都可以阅读JSON文件,因为你会大吃一惊。谢谢!有关于如何在gulp中获取环境变量的指针吗?