Angular 2でアプリをビルドし、問題が発生しました。angular CLIを使用してアプリケーションを作成しました。コンポーネントを作成し、 Angular CLIを使用するサービスで、「ng serve」を使用してアプリケーションをローカルで実行すると、すべて正常に動作します。 PROD用のビルドを作成するには、コマンド「ng build --Prod --base-href ./ --aot」を使用して、 DISTフォルダーとIISでフォルダーをホストすると、アプリケーションが正常に開きます。コードをTFSにチェックインすると、jenkinsを使用してDISTフォルダーを自動的に作成し、ビルドをサーバーにプッシュするイベントがあります。これで、サーバーのアプリケーションを参照すると、「No provider for t!」というエラーとエラー:DIエラーがスローされます。私はここで間違っています。
以下はエラーのスクリーンショットです
どんな助けでも大歓迎です。
私も同じ問題を抱えていました。私はそれを解決することができました:
ng serve -aot
。これはminify/uglifyを実行せずにAOTを実行しているため、欠落しているクラスが何であるかを見つけることができました。私の場合、angular2-logger/coreモジュールのLoggerクラスの使用に問題がありました。コンストラクターから参照を削除してコンパイルを再実行すると、魅力的に機能しました。次に、ng serve -prod
も修正されました。
私が見つけた1つのことは、Angular CLIを明示的に強制終了して再構築する必要があったことです。何らかの理由で、1行を変更して保存すると、再コンパイルされてなお壊れていると言われました。強制終了したときのみそれを実行してコマンドを再度実行したところ、本当に修正されたことがわかりました。
私は同じ問題を抱えていましたが、原因はangular2-loggerライブラリの癖にあることがわかりました。 この回答 私のために問題を解決しました
修繕 !私の場合、それはNotificationServiceangular2-notificationsのためでした
解決策は、NotificationServiceをプロバイダー配列から削除するだけですapp module。
ただし、これは、AOTモードでangularによって以前に検証する必要があります。
ありがとう!
エラーを特定する1つの方法-まず、uglifyプラグインを無効にすることから始めます(これは自動的に本番環境に設定されます)-angular-cliでこれを行う方法はありません。 node_modulesディレクトリでUglifyJSPluginを検索すると、一時的にコメントアウトできます。 (common.jsファイルで)見つけたら、コメント化します。
/*
// Temporarily comment out this part (in common.js of node_modules) to pinpoint the error
new UglifyJSPlugin({
sourceMap: buildOptions.sourceMap,
parallel: true,
cache: true,
uglifyOptions,
}),
*/
アプリをもう一度ビルドして実行します。次に、このような不可解な一体エラー
Unhandled Promise rejection: StaticInjectorError(ne)[t -> t]:
StaticInjectorError(Platform: core)[t -> t]:
NullInjectorError: No provider for t! ; Zone: <root> ; Task: Promise.then ; Value: Error: StaticInjectorError(ne)[t -> t]:
StaticInjectorError(Platform: core)[t -> t]:
NullInjectorError: No provider for t!
なる
Unhandled Promise rejection: StaticInjectorError(AppModule)[TranslatorService -> Http]:
StaticInjectorError(Platform: core)[TranslatorService -> Http]:
NullInjectorError: No provider for Http! ; Zone: <root> ; Task: Promise.then ; Value: Error: StaticInjectorError(AppModule)[TranslatorService -> Http]:
StaticInjectorError(Platform: core)[TranslatorService -> Http]:
NullInjectorError: No provider for Http!