Подтвердить что ты не робот

Angular2 + Jspm.io: рефлектор-метаданные требуется при использовании декораторов класса

У меня возникает следующая проблема с запуском следующих версий JSPM с Angular2 и SystemJS (Версии: Angular @2.0.0-alpha.27 с JSPM @0.16.0-beta.2 и SystemJS @0.18. 0) Что после компиляции typescript (без ошибок) я получаю следующую ошибку в браузере:

/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, проблема исчезает, но возникает следующая проблема: список undefined в пределах другого angular файл.

См. битбакет src ниже для конфигурационных файлов (код src) как из системных, так и для typescript/jspm.io

https://bitbucket.org/schippie/angular-2-jspm-hello-world/src/8af83f2066e5e3e9eede7db495545234f3b0c04a

Мне интересно, если в настоящее время возможно использовать jspm вместе с system.js, чтобы восстановить все пакеты angular, которые необходимы для angular, для нормальной работы. Увидев, что в config для 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]"
},

Но они не извлекаются (смотря на вкладку сети)

4b9b3361

Ответ 1

Robwormald написал красиво подробное объяснение, которое охватывает проблемы, которые люди могут иметь в этот момент и время, пытаясь получить angular alpha 27 для работы с jspm и typescript https://gist.github.com/robwormald/429e01c6d802767441ec

Ответ 2

Да, то, что вы ищете, возможно и прекрасно работает. Кажется, что у вас есть права зависимостей. Я думаю, что вам не хватает только следующего, что должно быть в начале вашего верхнего уровня typescript или файла JavaScript. В частности, они должны быть до первой строки, что загружает Angular.

import 'zone.js';
import 'reflect-metadata';

(Другой ответ указывает на подробное, но за пределами сайта объяснение.)

Ответ 3

Если эта проблема возникает в среде Angular 4.4+, она может помочь, если вы перезапустите ng serve.