angular2中使用angular-cli的环境特定服务端点
我正在为我的angular2项目使用angular-cli。angular2中使用angular-cli的环境特定服务端点
我通过我的angular2服务调用后端ajax服务。
我有不同的服务终点(URL)为不同的任务。 我想让这些服务环境更有意义。
假设我有两个服务
- 客服:
https://localhost:8080/customers
- 产品服务:
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"
}
块,但我现在没有发现环境目录。
如何创建并管理环境特定的终点?
命令纳克新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'。
您可以像在环境文件声明变量:process.env.apiHost = "http://myhostfordevorprod"
你应该把,出口之前在您的环境文件:export const environment = { production: false, //or true };
和访问它在您的组件是这样的:my_var = process.env.apiHost
然后运行ng build --environment=production
或ng build --environment=development
选择要加载的环境文件。相反,打造你也可以运行ng serve --environment=development
谢谢,这个工程。现在我正在尝试设置一个模拟环境,而不使用原始服务端点,但是使用一些模拟JSON文件作为端点。但是我正面临一些问题需要POST到JSON文件的URL。这是我的问题。请看看是否可以帮忙。 http://stackoverflow.com/questions/41634007/angular2-setup-mock-environment-using-json-file –