在启动通过angular cli构建的angular 2 app之前,从“config file”读取配置变量

时间:2017-05-13 07:44:14

标签: angular angular-cli configuration-files

我想征求意见。 我正在开发一个角度应用程序并使用角度cli。该应用程序将部署在其中一个IIS服务器上。角度生产文件将位于同一文件夹中的web.config(.NET)文件中。我希望能够从Angular生成版本中的web.config文件中读取一些变量(例如OAuth参数或代理配置URL)。知道如何实施它吗?感谢

2 个答案:

答案 0 :(得分:1)

如果您需要更好地控制Angular应用程序的设置,打包和捆绑方式,您可以尝试弹出它。

这将生成一个webpack配置文件,其中包含ng项目的默认配置。之后,您可以在构建之前修改变量和参数,而不仅仅是。

请注意,这会禁用cli中 ng 命令的使用。

(如果您在 angular-cli.json 中将eject: true更改为eject: false,则可以重新激活。但是,ng命令将始终忽略webpack配置文件)

答案 1 :(得分:0)

不幸的是,web.config仅用于服务器端应用程序,因此没有额外的服务器端代码(例如托管在dotnet应用程序中,并通过Web API公开设置),它真的不会有可能。

开箱即用,@angular/cli使用编译时属性设置,这可能令人沮丧和有问题(您需要将密钥捆绑到可部署代码中,并重建包,如果环境之间需要改变的设置)。

最常见的方法是创建特定于环境的config.json文件,然后在部署时覆盖该文件。因此,例如,您将拥有:

  • dev.config.json
  • test.config.json
  • prod.config.json

然后在部署时,您只需将正确的文件重命名为config.json并在index.html中链接到该文件。

我知道这可能意味着将设置复制到不同的文件中,但它是解决问题的最有效方法 - 并且确实为您提供了在运行时更改的一定程度的灵活性(请注意正在缓存的文件)。