問題タブ [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.

0 投票する
2 に答える
2279 参照

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 プロジェクトがあり、動作しています。大きな違いを特定することはできませんでした。

0 投票する
2 に答える
659 参照

angular - NG6: ライブラリ提供のサービスは未定義です

Angular 6 プロジェクトでライブラリ提供のサービスを拡張する派生クラスの問題をデバッグ/理解するための支援/ポインター/ガイダンスを求めています。

angular.json既存の Angular 5.x プロジェクトをAngular 6 プロジェクトの新しいワークスペース形式に移動しようとしています。

私の既存のプロジェクトは、Angular アプリケーションと、NgModuleサービスやその他の機能を提供する別の共有で構成されています。共有モジュールは、次のような構造で複数のアプリケーションで使用されます。

私の既存の NG5 コードでは、共有ライブラリがnpm linkTS ソース ファイルとして 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 がモジュール提供のサービスをどのように処理するかを深く理解している人で、私を正しい方向に導くことができる人はいますか?

0 投票する
1 に答える
1676 参照

angular - 複数のプロジェクト (CLI ワークスペース内) を 1 つの大きなアプリに遅延読み込みする

複数のプロジェクト (新しい CLI 生成アプリケーション機能を使用して作成) を 1 つの大きなアプリケーションに遅延ロードすることは可能ですか?

私が働いている場所には複数のプロジェクトがあり、さまざまなチームがそれらに取り組み、各アプリケーションは個別に提供されますが、それらはすべて大きなアプリの小さなアプリです。そのため、アプリ間を移動するたびに、読み込み時間を待つ必要があります. 私がやりたかったのは、大きなアプリのシェルとして機能するアプリケーションを作成することです。そのシェルは、それらのアプリをモジュールまたは何かとしてロードし、遅延ロードまたはプリロードするだけで、大きなアプリをスムーズに動作させることができます。

ただし、開発プロセスを正しく機能させながら、それを行いたいと考えています。

このような構造になると思います

など、これらのアプリは git を使用して複製されます。

私が現在持っているのは

これらは 1 つのプロジェクトですが、1 つのプロジェクトで約 7 つのアプリに取り組んでいるとしたら地獄なので、これはうまくいきません。

問題は、別のプロジェクトからモジュールを遅延ロードすることは可能ですか?

可能であれば、上記のコードはどのようになりますか?