1. ホーム
  2. angular

[解決済み] CLIを使ったAngular 2 - 制作のためのビルド

2022-03-17 03:35:08

質問

angular-cli 1.0.0.beta.17(最新版)をインストールし、新しいプロジェクトを開始し、ポート4200でプロジェクトを問題なく提供することができました。

しかし、この空っぽの一般的なアプリケーションを本番用にビルドしようとすると、コマンド ng build --prod main.*.jsファイルが全く作成されず、以下のような警告が数画面表示されます。

  • 未使用の関数を削除しました。
  • 初期化におけるサイトエフェクト...
  • その他

これは全く新しい空のプロジェクトで、まだ何も壊す機会がありませんでした...

製品版のビルド方法は?

解決方法は?

Angular v6+にアップデートしました。

# Prod - these are equivalent
ng build --configuration=production
ng build --c=production
ng build --prod=true

# Dev - and so are these
ng build --configuration=development
ng build --c=development
ng build --prod=false
ng build

その他のフラグ設定はこちら

https://angular.io/cli/build


Angular-cliのgithub wiki v2+によると、開発版と本番版のビルドを開始する最も一般的な方法は以下のとおりです。

# Prod these are equivalent
ng build --target=production --environment=prod
ng build --prod --env=prod
ng build --prod

# Dev and so are these
ng build --target=development --environment=dev
ng build --dev --env=dev
ng build --dev
ng build

dev と --prod のビルドに影響するデフォルトフラグは異なります。

Flag                 --dev      --prod
--aot                false      true
--environment        dev        prod
--output-hashing     media      all
--sourcemaps         true       false
--extract-css        false      true

--prod は、以下のフラグ不可の設定も行います。

  • で設定されている場合は、サービスワーカーを追加します。 .angular-cli.json .
  • 置き換え process.env.NODE_ENV というモジュールで production の値を変更します (これは react などの一部のライブラリで必要です)。
  • コード上でUglifyJSを実行します。

AOTを動作させるために、トラブルシューティングを行う必要があります。実行したところ

ng build --prod --aot=false

のようなエラーが返されるでしょう。

Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory'

元々、AOTを動作させるためには、プロジェクトのリファクタリングを行う必要がありました。しかし、このエラーに遭遇した場合、それらは修正されるかもしれません。試す

<ブロッククオート

npm i [email protected]

https://github.com/angular/angular-cli/issues/7113