2015-06-18 1 views
53

У меня возникает следующая проблема с запуском следующих версий JSPM с Angular2 и SystemJS (Версии: Angular @ 2.0.0-alpha.27 с JSPM @ 0.16.0-beta.2 и [email protected]) Это когда машинопись компилируется (без ошибок) я получаю следующее сообщение об ошибке в браузере:Angular2 + Jspm.io: reflex-metadata shim требуется при использовании декораторов классов

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

Смотрите Bitbucket SRC ниже для конфигурационных файлов (ЦСИ код) с обеих system.js и машинопись/jspm.io

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

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

"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]" 
}, 

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

ответ

13

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

+0

UPD 15-05-2016, для Angular2-rc1 после установки ** ref-metadata **, чтобы исправить эту проблему, теперь я получаю ошибки от Router – shershen

65

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

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

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

+3

Не забудьте добавить 'jspm install reflect-metadata zone.js' , –

+3

Хотя это работает, если вы связываете источник с помощью bundle-sfx, он работает, но он будет вызывать ошибку «превышение максимального размера звонка». Я думаю, поскольку angular2 также включает в себя метаданные отражения и zone.js в качестве зависимостей, он вызывает круговую зависимость где-то. –

+0

@EvanPlaice Так как я думаю, что альфа 46/45 они связывают zone.js с угловыми. Я думаю, вам все еще нужно es6-shim и отразить метаданные. –

4

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

Смежные вопросы