Angular2 + Jspm.io :使用 class 装饰器时需要反射元数据垫片
Angular2 + Jspm.io : reflect-metadata shim is required when using class decorators
我遇到以下问题 运行 以下版本的 JSPM 与 Angular2 和 SystemJS(版本:Angular@2.0.0-alpha.27 与 JSPM@0.16 .0-beta.2 和 SystemJS@0.18.0) 一旦打字稿被编译(没有错误),我在浏览器中收到以下错误:
/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_packages\npm\reflect-metadata@0.1.0\Reflect.js 问题消失了,但下一个问题出现了,说 list is undefined within another angular 文件。
请参阅下面的 bitbucket src 以获取来自 system.js 和 typescript / jspm.io
的配置文件(src 代码)
我想知道的是,目前是否可以将 jspm 与 system.js 一起使用来检索 angular 正常运行所需的所有 angular 包。
看到 system.js 的配置明确指出 angular 依赖于它:
"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"
},
但没有检索到它们(查看网络选项卡)
Robwormald wrote a nicely detailed explanation that covers the issues people might have at this point and time trying to get angular alpha 27 to work with jspm and typescript https://gist.github.com/robwormald/429e01c6d802767441ec
是的,您正在寻找的东西是可行的,而且效果很好。看起来好像您拥有正确的依赖关系。我认为您只缺少以下内容,它需要位于顶级打字稿或 JavaScript 文件的开头。具体来说,这些需要先于第一行是loads Angular.
import 'zone.js';
import 'reflect-metadata';
(另一个答案指向一个详细的,但场外的解释。)
如果此问题发生在 Angular 4.4+ 环境中,重新启动 ng serve
会有所帮助。
我遇到以下问题 运行 以下版本的 JSPM 与 Angular2 和 SystemJS(版本:Angular@2.0.0-alpha.27 与 JSPM@0.16 .0-beta.2 和 SystemJS@0.18.0) 一旦打字稿被编译(没有错误),我在浏览器中收到以下错误:
/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_packages\npm\reflect-metadata@0.1.0\Reflect.js 问题消失了,但下一个问题出现了,说 list is undefined within another angular 文件。
请参阅下面的 bitbucket src 以获取来自 system.js 和 typescript / jspm.io
的配置文件(src 代码)我想知道的是,目前是否可以将 jspm 与 system.js 一起使用来检索 angular 正常运行所需的所有 angular 包。 看到 system.js 的配置明确指出 angular 依赖于它:
"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"
},
但没有检索到它们(查看网络选项卡)
Robwormald wrote a nicely detailed explanation that covers the issues people might have at this point and time trying to get angular alpha 27 to work with jspm and typescript https://gist.github.com/robwormald/429e01c6d802767441ec
是的,您正在寻找的东西是可行的,而且效果很好。看起来好像您拥有正确的依赖关系。我认为您只缺少以下内容,它需要位于顶级打字稿或 JavaScript 文件的开头。具体来说,这些需要先于第一行是loads Angular.
import 'zone.js';
import 'reflect-metadata';
(另一个答案指向一个详细的,但场外的解释。)
如果此问题发生在 Angular 4.4+ 环境中,重新启动 ng serve
会有所帮助。