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


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

/jspm_packages/npm/angular2@2.0.0-alpha.27/src/util/decorators.js:70 Uncaught reflect-metadata shim is required when using class decorators

теперь, когда я вручную включаю файл Reflect.js: jspm_packagesnpmreflect-metadata@0.1.0Reflect.js эта проблема уходит, но появляется следующая проблема: список неопределен внутри еще один угловой файл.

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

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

мне интересно, возможно ли в настоящее время использовать jspm вместе с системой.js для извлечения всех угловых пакетов, которые необходимы для нормального функционирования angular. Видя, как конфигурация для системы.js четко указывает, что угловой зависит от него:

"npm:angular2@2.0.0-alpha.27": {
  "fs": "github:jspm/nodelibs-fs@0.1.2",
  "path": "github:jspm/nodelibs-path@0.1.0",
  "process": "github:jspm/nodelibs-process@0.1.1",
  "reflect-metadata": "npm:reflect-metadata@0.1.0",
  "rx": "npm:rx@2.5.1",
  "url": "github:jspm/nodelibs-url@0.1.0",
  "zone.js": "npm:zone.js@0.5.1"
},

но они не извлекаются (глядя на вкладке "Сеть")

3 53

3 ответа:

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

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

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

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

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