Angular CLI:在构建时更改REST API URL

kar*_*una 18 angular-cli angular angular-webpack

我想在构建生产()时从我的REST API URL(例如,http:// localhost:8080)中删除我的本地服务器前缀ng build --prod.

我知道它与环境文件有关environment.prod.ts,但是找不到任何使用它们来实现上述内容的例子.

如果有人帮我开始会很棒!

小智 36

不要硬编码URL.使用src/environments中的environment.prod.tsenvironment.ts文件.对于localhost,在environment.ts文件中使用一些变量来保存你的url.

export const environment = 
{
    production: false,
    API_URL: 'http://localhost:8080',
};
Run Code Online (Sandbox Code Playgroud)

用于生产,在environment.prod.ts中

export const environment = 
{
    production: true,
    API_URL: 'http://api.productionurl.com',
};
Run Code Online (Sandbox Code Playgroud)

在代码中使用时导入变量,

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

private API_URL= environment.API_URL;
Run Code Online (Sandbox Code Playgroud)

无论何时用于生产,都使用angular cli命令选项

ng build --env=prod
Run Code Online (Sandbox Code Playgroud)

当前环境的文件内容将在构建期间覆盖这些内容.构建系统默认使用的开发环境environment.ts,但是如果你这样做, ng build --env=prod那么environment.prod.ts将使用它.env映射到哪个文件的列表.angular-cli.json.

有关更多疑问,请参阅 https://angular.io/guide/deployment

  • 您也正在对URL进行硬编码。将其放入具有特殊名称(如“ environment”)的另一个文件中并不能避免您硬编码:shrug:。API URL应通过环境变量设置。文件中名为“ environment”的变量不是环境变量。 (4认同)