私はいくつかの外部依存関係を持つAngular2プロジェクトでwebpack2を使用しています。これらの依存関係のいくつかはcommonjsを使用していて、以下のようなコンポーネントを宣言されています。これは、以下のエラーが発生module.idを解決するにはwebpack2を使用して文字列エラーにする必要があります
@Component({
moduleId: module.id,
templateUrl: 'mycomponent.html'
...
})
を:
いくつかの研究の後Error: moduleId should be a string in "MyComponent"
を、私はこれを持っているコンポーネントを期待WebPACKのが原因で把握しますidは数値として、Angularは文字列としてそれを宣言します。私は依存コードを変更することはできません。この種の依存関係で生きるために私は何ができますか?
ありがとうございます!
モジュールIDなしでwebpack [解決相対パス](http://stackoverflow.com/questions/37178192/angular2-what-is-the-meanings-of-module-id-in-component)を実行しますか? – Pavel
私が言ったように、私はすべてのサードパーティのライブラリからすべてのmodule.id参照を削除することはできません。彼らは毎回npmで引っ張られます。プロジェクトで作業する必要のある人はすべてこれを行う必要があります。 @pavel、yes Webpackは相対パスを解決する必要はありません。 – Juliano
これを解決するにはより良い方法が必要です。私は、string-replace-loaderを介してすべてのmodule.id宣言を置き換えるルールを追加しようとしました。しかし、テンプレートは './mytemplate.html'のようなディレクトリを参照するのではなく、 'mytemplate.htnl'を宣言するだけで、まだ動作しません。後者はWebpack – Juliano