我正在Angular 6中开发一个应用程序。部署应用程序时,它会与在线数据库交换数据。然而,当我使用该应用程序时,我希望它能与本地数据库交换数据。我有一个单独的服务设置来完成所有的通信,所以当我在应用程序上工作时,我可以简单地更改基本URL,但我想知道是否有一种方法可以在开发中重定向该服务,然后在生产环境中正常地将其转到数据库。
我知道我可以添加一个proxy.conf.json文件,我已经在做这件事来访问一个单独的在线API,所以我不知道这是否像在json文件中添加另一个元素那么简单。
我还没有发布任何示例代码,因为这更多的是一个关于方法论的一般性问题,而不是一个特定的代码行问题,但我很乐意发布人们希望看到的任何内容来澄清。
你可以做一件事,
你可以像一样在environment.ts
和environment.prod.ts
中配置你的url
environment = {
...
url: 'something.com/api',
...
}
并像一样使用它
import { environment } from 'environment/environment';
const url = environment.url;
这将为正常构建(开发环境(和产品构建(部署环境(提供不同的url
此外,不要担心在import语句中只使用environment.ts,因为当您创建产品时,您的environment.ts会从environment.prod.ts获取内容。因此,您将使用environment.prod.ts中的url
在Angular中,您可以访问函数isDevMode()
,该函数确定应用程序当前是否处于开发模式。
基于此,您应该能够根据需要调整您的基本url。
import { isDevMode } from '@angular/core';
private baseUrl: string = '';
const devUrl: string = '...';
const prodUrl: string = '...';
if (isDevMode()) {
this.baseUrl = devUrl
}
else {
this.baseUrl = prodUrl
};