2017-12-14 6 views
-1

私は3つの異なる環境ファイルを持っています environment.dev.ts environment.prod.ts environment.stages.ts たとえば、使用するファイルを変更するには、私は--env=prodをwebpack.config.tsに渡します。それはうまく動作します。しかし、私はまた、このような環境ファイルをインポートする必要があるサービスを持っていますimport { environment } from '../environments/environment.dev';。私がコンソールでwebpackを起動し、--env=dev' I need to pass environments.dev.ts into my service; if I type --env = prod 'と入力すると、私のサービスのenvironments.prod.tsになるはずです。どうすればこのことができますか?たぶん私の問題を解決する良い方法があります(別のバンドルのURLを変更する必要があります)。現時点では、私の環境のファイルにurlが含まれています。サービスに環境ファイルを渡すには?

UPDATE。 解決策が見つかりました。あなたはWebPACKのを使用している場合は、あなたのwebpack.config.jsにmodule.exportsはへ var NODE_ENV; econst environmentFiles = { 'dev': 'environments/environment.dev.ts', 'prod': 'environments/environment.prod.ts''local': 'environments/environment.local.ts' };
を追加するアプリを構築し、ng eject後の環境を変更するためのコマンド
module.exports = function(env) { NODE_ENV = env; ... }を追加
および
"hostReplacementPaths": { "environments/environment.ts": environmentFiles[NODE_ENV] },
into AngularCompilerPlugin そして、あなた
webpack build --env='name_of_your_environment'を実行することができますし、CLIを使用してアプリケーションを生成する場合、それはenvironment.tsファイル

答えて

0

を変更します、デフォルトでは、開発環境は本番環境用environment.ts、およびenvironment.prod.tsを使用します。

あなたはより多くの環境を追加したい場合は、.angular-cli.jsonで見て:

"environmentSource": "environments/environment.ts", 
"environments": { 
    "dev": "environments/environment.ts", 
    "prod": "environments/environment.prod.ts" 
} 

あなたは

+0

こんにちは、merlosyをしたい場合は、より多くのENVSを定義することができます。私はそれを知っていますが、私の場合、 'ng eject 'の後に生成するwebpackファイルだけを使う必要があります。 webpackコマンドで環境ファイルを変更するのに問題はありませんが、コンポーネントとサービスでこのファイルを変更する必要があります。 たとえば、これは私の環境ファイル '輸出のconst環境= { 生産です:偽、 newsfeedDemoUrl: 'newsfeed.demo.dev'、 demoUrl: 'demo.dev'、 onlineUrl: 'online.demo.dev' 、 トークン: 'rtue33o2pp2899s' }; ' – Belouccio

+0

、私のコンポーネントでは、このファイルを' ../ environments/environment.prod 'の 'import {environment}'のようにインポートします。しかし、私はこのファイルを変更する必要があります。今は自分のコンポーネントでハードコアですが、prodとdevの別のURLのために変更する必要があります。 私の悪い英語を残念にして申し訳ありません:( – Belouccio

+0

私は環境からインポートしただけですが、角度DIに依存するビルド・メカニズムは、指定したenvに基づいてenvファイルを必要なものに置き換えます – merlosy

関連する問題