Angular2およびSystemJSで以下のバージョンのJSPMを実行すると、次の問題が発生します(バージョン:[email protected]および[email protected]で[email protected])コンパイルされた(エラーなし)ブラウザーで次のエラーが表示されます。
/jspm_packages/npm/[email protected]/src/util/decorators.js:70 Uncaught reflect-metadata shim is required when using class decorators
Reflect.jsファイルを手動でインクルードすると、\ jspm_packages\npm\[email protected]\Reflect.jsという問題はなくなりますが、リストが別のangularファイル内で定義されていないという次の問題が発生します。
System.jsとTypeScript/jspm.ioの両方からの設定ファイル(srcコード)については、以下のbitbucket srcを参照してください
私が疑問に思っているのは、system.jsと一緒にjspmを使用して、angularが正常に機能するために必要なすべてのangularパッケージを取得することさえ可能かどうかです。 system.jsの構成を見ると、angularがそれに依存していることが明確に示されています。
"npm:[email protected]": {
"fs": "github:jspm/[email protected]",
"path": "github:jspm/[email protected]",
"process": "github:jspm/[email protected]",
"reflect-metadata": "npm:[email protected]",
"rx": "npm:[email protected]",
"url": "github:jspm/[email protected]",
"zone.js": "npm:[email protected]"
},
しかし、それらは取得されません(ネットワークタブを見る)
Robwormald は、angular alpha 27をjspmとTypeScriptで動作させようとしているときに現時点で人々が抱えている可能性のある問題をカバーする詳細な説明を書いています https:/ /Gist.github.com/robwormald/429e01c6d802767441ec
はい、あなたが探しているものは可能であり、うまく機能します。依存関係が正しいように見えます。トップレベルのTypeScriptまたはJavaScriptファイルの先頭にある必要がある次のものだけが欠けていると思います。具体的には、これらは、Angularをロードする最初の行の前にある必要があります。
import 'zone.js';
import 'reflect-metadata';
(他の回答は、詳細ですが、オフサイトの説明を指します。)
この問題がAngular 4.4+環境で発生した場合、ng serve
を再起動すると役立ちます。