web-dev-qa-db-ja.com

Angular 5環境でprocess.envを使用します

標準の_ng build --prod_コマンドを使用してAngular 5アプリケーションをビルドしようとし、_environment.prod.ts_の基本的なAPI-Urlを_process.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'.

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

14
Freshchris

Angularコードのコンパイル時にprocess.envにアクセスすることはできません。

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

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

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

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

オプション番号2は、あなたにぴったりかもしれません。その場合、これをangle-cli.jsonに追加します:

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

ng build --env=prodを使用してアプリを構築します。

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

11
chrispy