2017-11-07 4 views
0

私は角度2/4のアプリを持っていて、ノードserver.jsを提供しています。私は環境変数にアクセスしたい(バックエンドエンドポイントはdevの場合はlocalhost、prodの場合はもう一つのエンドポイント)。重要な場合、このアプリ(バックエンドアプリと同様)はHerokuにデプロイされることを意図しています。Angular2の環境変数

私はこの解決策を見つけることを試みたが、私が見つけすべては、複数のenvironment.tsファイル(各コンフィギュレーションのための1)を使用して、その後、ng buildフラグ--envに基づいてそれらの間のスワップにつながるようです。しかし、構成とソースコードが混在しているように見えるので、私はこの解決策について懸念しています。また、エンドポイント/コンフィグレーションが変更されたときに再構築/再デプロイする必要がある(可能な場合)ことを避けたい。

私はSpringブートで、プロパティファイルに${PORT:8080}のような設定を使用するのに慣れています。私は過去に複数のファイル.propertiesを作成しましたが、時には単純すぎる/きれいにすることがあることを理解しています。

ノードでは、私は、process.env.PORT || 8080のようなenv変数の実行に慣れています。私の角型アプリはノードserver.jsによって提供されているので、私は似たようなことができるはずだと思います。私は私のenvironments/environment.tsファイルにprocess.envを使用しようとする。しかし、私は、複数のenvironmentプロパティファイルを作成するために必要なのですか代替がある場合Cannot find name 'process'.

だから、私の質問は、本質的にエラーを取得します。

おかげ

+1

これはまったく役に立ちますか? [環境変数TypeScript](https://stackoverflow.com/q/40622116/691711) – zero298

+0

本当にありません。しかし、タイ – junvar

答えて

0

あなたは基本的に関係なく、あなたの設定は、環境変数またはサーバー上の設定ファイルに格納されているかどうかの、2つの選択肢があります。顧客側のコードで必要とするので、資産バンドルの一部として提供する必要があるか、別の要求として取得する必要があります。その別のリクエストは、Ajaxコールか、バンドルの残りの部分とは別に配信されるjsファイルだけです。

私は理想的には、クライアント上のプロダクションアプリと非プロダクションアプリの唯一の違いは、データ、バンドル密度(デベロッパーではあなたのものを細かくしたくない)とそれが提供しているURL 。他のすべては、ソースURLから見つけることができます。im