31

標準コマンドを使用して Angular 5 アプリケーションを構築しようとしています。基本的な API-Url を変数に依存する値ng build --prodに設定したいと考えています。environment.prod.tsprocess.env

これは私のファイルです:

export const environment = {
    production: true,
    apiUrl: `${process.env.BASE_URL}` || 'http://localhost:8070/',
};

しかし、アプリケーションをビルドしようとすると、次のエラーが発生します。

ERROR in src/environments/environment.ts(7,16): error TS2304: Cannot find name 'process'.

アプリケーションのビルド時に環境変数に従って API-Url を設定するにはどうすればよいですか?

4

1 に答える 1

22

アップデート

以下のコメントによると、元の回答は完全には明確ではありませんでした -- Angular はノード アプリケーションである Angular CLI で構築されていますが、ビルド プロセス中にアプリ内から直接アクセスすることはできませprocess.envん。ノード アプリケーション。

概念はほぼ同じですが、上記を理解することが重要です。

オリジナル

process.envAngular コードのコンパイル時にはアクセスできません。

process.envアプリケーションで使用できますNodeが、Angular アプリケーションでは使用できません。

いくつかのオプションがあります:

  1. 本当に動的にする必要がある場合は、ビルド パイプラインで何らかのタスクを作成して、環境ファイルを正しい値で更新します。

  2. それをハードコードして、それぞれの環境に合わせていくつかの環境ファイルを作成するだけです。angular-cli.json で環境を指定できます。

オプション番号 2 は、あなたに適しているように思えます。その場合、これを angular-cli.json に配置します。

"environments": {
    "dev": "path/to/dev/env",
    "prod": "path/to/prod/env"
}

でアプリをビルドしますng build --env=prod

より詳細な情報は次のとおりです: https://alligator.io/angular/environment-variables/

于 2018-03-26T16:46:57.810 に答える