2016-07-02 5 views
2

Angular2 Webpackアプリケーションとnpmリンクを使用して、角度2のコンポーネントライブラリで作業しています。ライブラリがリンクされていないと動作しますが、npmリンクを実行してアプリケーションを実行すると、次のエラーが発生します。問題のプロバイダは、このリンクされたライブラリのプロバイダです。配列を取得し、それをデータとして使用する関数を呼び出します。エラーは、私が1つずつ削除して次のエラーが発生するたびに、すべてのプロバイダで発生します。このエラーは、ライブラリがリンクされている場合にのみ発生します。Npm link Angular 2 webpackを実行しているときの角度2のライブラリ

キャッチされない無効なプロバイダは、 - プロバイダとタイプのインスタンスのみが許可されて、得た:[対象オブジェクト]

+1

この問題はリンクされたパッケージのnode_modulesが表示されるsymlinkのために2つの角度2のバージョンが利用可能であるために起こります。残念ながら、私はそれを解決する方法を知らない、それは角度2の特定の問題かもしれない。今のところ、ライブラリ内のすべての変更にunlinkとnpmをインストールする必要があります(または、ライブラリからnode_modulesフォルダを削除する必要があります)。 –

答えて

2

プロバイダは、そのベース・プロバイダのインスタンスである場合には、角度2つのチェックと思われます。

独自のangular2インスタンスをインポートするモジュールがある場合、プロバイダインスタンスはモジュールangular2バージョン/インスタンスから拡張されます。しかし、メインアプリは独自のangular2バージョン/インスタンスを使用しているため、プロバイダーが独自の角度2のインスタンスからベースプロバイダーまで拡張するかどうかをチェックします。

これは角度2のバグです。しかし、それがいつ修正されるのかは不明です。それまでは、ライブラリで変更が行われたとき(またはリンクされたライブラリから「node_modules」フォルダを削除するとき)、「npm unlink」と「npm install」のコメントに従ってください。

+0

おそらくこれは修正されています:https://github.com/angular/angular-cli/pull/2291 – rbj325

関連する問題