是否可以在Angular 6的开发模式中添加服务重定向



我正在Angular 6中开发一个应用程序。部署应用程序时,它会与在线数据库交换数据。然而,当我使用该应用程序时,我希望它能与本地数据库交换数据。我有一个单独的服务设置来完成所有的通信,所以当我在应用程序上工作时,我可以简单地更改基本URL,但我想知道是否有一种方法可以在开发中重定向该服务,然后在生产环境中正常地将其转到数据库。

我知道我可以添加一个proxy.conf.json文件,我已经在做这件事来访问一个单独的在线API,所以我不知道这是否像在json文件中添加另一个元素那么简单。

我还没有发布任何示例代码,因为这更多的是一个关于方法论的一般性问题,而不是一个特定的代码行问题,但我很乐意发布人们希望看到的任何内容来澄清。

你可以做一件事,

你可以像一样在environment.tsenvironment.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
};

最新更新