2017-01-02 51 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