web-dev-qa-db-ja.com

angular 2で本番モードを有効にする

Angular 2とFirebaseを使用してWebアプリケーションを作成しています。本番モードを有効にしたいのですが。

main.ts

if (environment.production) {
  enableProdMode();
}

environment.ts

export const environment = {
  production: true
};

environment.prod.ts

export const environment = {
  production: true
};

次に、ng build -prodを試しました。 ng serveですが、まだ機能しません。

前もって感謝します。

7
naruto

ng build --prod/distフォルダーにビルドアーティファクトを作成します-それらのファイルを別のWebサーバーに配置する必要があります(つまり、その後はng serveを使用しません)

ng serveを使用してアプリを実行するだけで、プロダクションモードを使用する場合は、次を使用します。

ng serve --prod

編集

私はこれをうまく説明できていないようです。あなたの要求は「生産モードを有効にする」ことです。何をしようとしているかに応じて、2つの方法があります。

Angular-cli開発サーバーを使用してアプリを本番モードで実行し、本番モードが適切に機能するかどうかをテストする場合は、次のコマンドを使用します。

ng serve --prod

ただし、アプリを本番ウェブサーバーにデプロイする準備ができている場合は、2段階のプロセスです。

  1. 次のコマンドを使用して、アプリの製品版を生成します:ng build --prod

  2. /distフォルダーの出力をプロダクションWebサーバーにコピーします。

私は両方をしないことに注意してください-私が達成しようとしていることに応じて、ng buildまたはng serveのどちらかを使用します。

6
snorkpete

ng serve --prodが機能しませんでした。

これはところで働いた:)

ng serve --configuration=production

デプロイされたサーバーで動作するのと同じように動作するテスト本番サーバーを作成します。私はenvironment.jsでこのテストを試しました(他のすべてのソリューションは私のために機能しませんでした)

this (Angular Environmentalist)になるための記事)に従って、Angular環境についての詳細を学ぶことができます。

1

私はangular-cli 1.0.0-beta.28.3でこれを観察しました。 distng-serveに表示されなくなります。ビルドを維持したい場合は、ng build --output-path=last-build/を試して この問題 を確認してください。

ただし、buildを作成した後でng serve --prodを実行する必要はありません。 @snorkpeteが言っているように、ビルドをWebサーバーに作成した後、distフォルダーをコピーしてください。そして、あなたのウェブサーバーがアプリを実行します。 Remeber, you will have to create a virtual Host for this。しかし、ローカルマシンで実行したいだけで、ライブのwebpackが必要な場合は、ng serve --prodを実行するだけです。ライブのwebpackは、お持ちのdistとは何の関係もありません。

0
xyz