2017-01-02 49 views
1

我正在为我的angular2项目使用angular-cli。angular2中使用angular-cli的环境特定服务端点

我通过我的angular2服务调用后端ajax服务。

我有不同的服务终点(URL)为不同的任务。 我想让这些服务环境更有意义。

假设我有两个服务

  1. 客服:https://localhost:8080/customers
  2. 产品服务:https://localhost:8080/products

由于localhost是在我的开发环境avaliable。它正在工作

现在假设x.x.x.x是我生产Web服务主机的IP地址。

因此,对于生产环境中的服务URL将https://x.x.x.x:8080/customers

请帮助我如何实现这一目标。

我发现有在角cli.json文件

"environments": { 
    "source": "environments/environment.ts", 
    "dev": "environments/environment.ts", 
    "prod": "environments/environment.prod.ts" 
} 

块,但我现在没有发现环境目录。

如何创建并管理环境特定的终点?

回答

4

命令纳克新PROJECT_NAME应该创建两个文件:

  • 的src /环境/ environment.prod.ts
  • 的src /环境/ environment.ts

我相信你可以手动创建它。下面是生成的代码:

// The file contents for the current environment will overwrite these during build. 
// The build system defaults to the dev environment which uses `environment.ts`, but if you do 
// `ng build --env=prod` then `environment.prod.ts` will be used instead. 
// The list of which env maps to which file can be found in `angular-cli.json`. 

export const environment = { 
    production: false 
}; 

您可以添加你的尊重环境这两个文件需要的配置:

// src/environments/environment.ts 
export const environment = { 
    production: false, 
    apiUrl: 'http://localhost:8080' 
}; 

...

// src/environments/environment.prod.ts 
export const environment = { 
    production: true, 
    apiUrl: 'https://x.x.x.x' 
}; 

在使用时只需配置:

import { environment } from '../environments/environment'; 

//... 

let url = `${environment.apiUrl}/customers`; 

只要确保你导入'../environments/environment',而不是 '../environments/environment.prod'。

+0

谢谢,这个工程。现在我正在尝试设置一个模拟环境,而不使用原始服务端点,但是使用一些模拟JSON文件作为端点。但是我正面临一些问题需要POST到JSON文件的URL。这是我的问题。请看看是否可以帮忙。 http://stackoverflow.com/questions/41634007/angular2-setup-mock-environment-using-json-file –

0

您可以像在环境文件声明变量:
process.env.apiHost = "http://myhostfordevorprod"
你应该把,出口之前在您的环境文件:
export const environment = { production: false, //or true };
和访问它在您的组件是这样的:
my_var = process.env.apiHost
然后运行ng build --environment=productionng build --environment=development选择要加载的环境文件。相反,打造你也可以运行ng serve --environment=development