Javascript 如何避免硬编码服务器url

Javascript 如何避免硬编码服务器url,javascript,webpack,angular,Javascript,Webpack,Angular,我对javascript世界还很陌生。我有一个使用Typescript的Angular2+Webpack应用程序,我想在属性文件中定义我的服务器的url,以便能够在构建后更改它 它就像一个config.js文件,在构建之后可以访问,在开发模式下也可以访问 第一:这是个好主意吗? 第二:为什么我觉得我是唯一一个有这种问题的人 如果这是个好主意,你怎么做?是的,绝对是个好主意,不,这不是问题 通常,您会定义一个默认配置和后续的特定于环境的配置,这些配置可能会/不会覆盖默认配置。一种常见的方法是设置应

我对javascript世界还很陌生。我有一个使用Typescript的Angular2+Webpack应用程序,我想在属性文件中定义我的服务器的url,以便能够在构建后更改它

它就像一个config.js文件,在构建之后可以访问,在开发模式下也可以访问

第一:这是个好主意吗? 第二:为什么我觉得我是唯一一个有这种问题的人


如果这是个好主意,你怎么做?

是的,绝对是个好主意,不,这不是问题

通常,您会定义一个默认配置和后续的特定于环境的配置,这些配置可能会/不会覆盖默认配置。一种常见的方法是设置应用程序可以处理的环境变量,并选择特定于环境的配置

看看MEAN.io和他们的种子项目,他们做得很优雅


Webpack可以检测更改并重新加载应用程序。显然,这不是您想在PROD中执行的操作。

如果您只有一台主机,即您的所有内容都是从同一台服务器提供的,或者您的后端服务器可以通过与前端服务器相同的域名和端口访问,那么您应该使用它。

您在这里想要达到的目的是什么?您打算如何使用url?这些问题的答案可能有助于回答您的第二个问题。我想使用url来使用angular2 http的REST api。因此,简言之,正如Aaron在他的答案中所述,感觉您是唯一一个的原因是,客户机需要到您自己后端的绝对url,这并不可怕,因为相对URL完成了这项工作,而且不那么脆弱。这对于使用另一方的API更为重要。在Angular 1.x中,我可能会设置一个Angular服务来处理对第三方API的所有调用,并且可以轻松地包含URL的常量。我没有做过Angular 2,但从我所看到的来看,相同的方法仍然有效。然后将它注入到需要它的组件中。问题是url的更改取决于环境(开发人员、产品…)而不是主机/域?或者路径的其他部分?我将来可能有多个主机。目前,相对URL应该足够了,但我期待未来的问题。@bobkilla我不知道angular2,但在angular2中,我想我会使用一个。我也不知道网页包,所以我很可能错过了一个更合适的方式。