問題タブ [angular-cli-v6]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - CLI を使用して Angular 6 にアップグレードした後、テストが実行されない
Angular CLI を使用して、webpack を含む Angular 5 プロジェクトを Angular 6 にアップグレードします。テストは、次のエラーで実行されなくなりました。
test.ts のコンテキストを変更して、すべてのテストを実行する代わりに、セットアップした単一のテストを実行するだけで、同じエラーで失敗するようにしました。
test.ts
偽のテスト.ts
package.json の関連バージョンは次のとおりです。
LOG_DEBUG に設定されたカルマ ロギングを使用したその他のロギングを次に示します。
これは Chrome のテスト ランナーの写真で、0 個中 0 個のテストを示しています。ただし、右側のソースでは、テストをはっきりと見ることができます。
CLI を使用している別の新しい Angular 6 プロジェクトがあり、動作しています。大きな違いを特定することはできませんでした。
angular - NG6: ライブラリ提供のサービスは未定義です
Angular 6 プロジェクトでライブラリ提供のサービスを拡張する派生クラスの問題をデバッグ/理解するための支援/ポインター/ガイダンスを求めています。
angular.json
既存の Angular 5.x プロジェクトをAngular 6 プロジェクトの新しいワークスペース形式に移動しようとしています。
私の既存のプロジェクトは、Angular アプリケーションと、NgModule
サービスやその他の機能を提供する別の共有で構成されています。共有モジュールは、次のような構造で複数のアプリケーションで使用されます。
私の既存の NG5 コードでは、共有ライブラリがnpm link
TS ソース ファイルとして main-app に組み込まれています (これは、CLI チームによって明示的に推奨されていませんが、私のチームのワークフローではうまく機能します)。
NG6 アプリでlibrary
は、 は 内のライブラリ プロジェクトでありangular.json
、そのようにビルドされ、 のパス定義を介してプロジェクトに取り込まれtsconfig.json
ます。ワークスペースは標準の NG6 レイアウトです。
ほとんどの場合、ライブラリで提供されるサービスはそのまま使用されますが、アプリ固有の機能を提供するためにメインアプリ (またはその他のアプリ) で拡張できます。ng serve
これは Angular 5 では問題なく動作しますが、Angular 6 では、(実行中に) ページを読み込もうとすると、コンソールに次のエラーが表示されます。
Object prototype may only be an Object or null
ここで警告が発生します。
ブートストラップ プロセスが FooService をインスタンス化するときに、FooBaseService が「未定義」として入ってきます。
調査によると、このエラーは一般的に循環依存の問題に関連していますが、それが起こっているとは思いません。ライブラリをビルドするときに circ-dep の警告が表示されないか、メイン アプリのビルドで問題が発生します。さらに、madge -c
(リンク)dist/library
を実行しても、またはのどちらにも circ-dep が見つかりません dist/main-app
。
この問題のデバッグをどのように進めるかについて、私はちょっと困惑しています。Angular 6 がモジュール提供のサービスをどのように処理するかを深く理解している人で、私を正しい方向に導くことができる人はいますか?
angular - 複数のプロジェクト (CLI ワークスペース内) を 1 つの大きなアプリに遅延読み込みする
複数のプロジェクト (新しい CLI 生成アプリケーション機能を使用して作成) を 1 つの大きなアプリケーションに遅延ロードすることは可能ですか?
私が働いている場所には複数のプロジェクトがあり、さまざまなチームがそれらに取り組み、各アプリケーションは個別に提供されますが、それらはすべて大きなアプリの小さなアプリです。そのため、アプリ間を移動するたびに、読み込み時間を待つ必要があります. 私がやりたかったのは、大きなアプリのシェルとして機能するアプリケーションを作成することです。そのシェルは、それらのアプリをモジュールまたは何かとしてロードし、遅延ロードまたはプリロードするだけで、大きなアプリをスムーズに動作させることができます。
ただし、開発プロセスを正しく機能させながら、それを行いたいと考えています。
このような構造になると思います
など、これらのアプリは git を使用して複製されます。
私が現在持っているのは
これらは 1 つのプロジェクトですが、1 つのプロジェクトで約 7 つのアプリに取り組んでいるとしたら地獄なので、これはうまくいきません。
問題は、別のプロジェクトからモジュールを遅延ロードすることは可能ですか?
可能であれば、上記のコードはどのようになりますか?