クラスはAngularモジュールではありません-ローカルでビルドされたAngularライブラリをインポートする場合のIntelliJ / Webstormでのみ

面白い

別のAngularアプリケーションに存在するライブラリ(プロジェクト)に実装されたAngularモジュールを使用しようとしています。IntelliJでエラーが発生しClass MyModule is not an Angular moduleng buildこのプロジェクトを正常に実行できる間、すべてのライブラリがIntelliJで認識されないようです。さらに奇妙なのは、他のAngularアプリに実際に2つのAngularライブラリが存在し、他のライブラリのモジュールを問題なく使用できることです。

私は関連する他の同様に見える問題を訪問しましたがclass is not an Angular module、それらは関連していないようです。

面白い

これが私の頭を数時間包んだ後に見つけた答えです。メインプロジェクトで問題のあるライブラリを使用する方法は次のとおりです。

  • npm linkbuildlibフォルダにあります
  • npm link @my-org/my-new-lib アプリで問題が発生します。

ng build @my-org/my-new-lib --watchlibの場合と一緒に、これにより、両方のプロジェクトで同時に作業して、ターゲットアプリで即座に結果を確認できます。

-問題が明らかにIntelliJののバグによるものですhttps://youtrack.jetbrains.com/issue/WEB-38354?_ga=2.263408847.258701770.1571260138-1443411092.1565629801 -それはとの依存関係を引き起こしてdist自動的にもかかわらずにexculdedするパスにライブラリはターゲットアプリのnode_modulesIntelliJに正しくリンクされているため、ライブラリは除外されているため、ライブラリは実際にはIDEで使用できません。

回避策(jetbrainsチケットで提案されているものと同様)は、ターゲットアプリのIDEでシンボリックリンクに移動することですnode_modules/@my-org/my-new-lib-それを右クリックして、[ディレクトリをマーク] -> [除外しない]を選択します

これは本当に混乱し、克服するのが明白ではなかったので、これが誰かにいくらかの時間を節約するかもしれないことを願っています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ