我正在尝试创建一个包含 Angular 2 装饰器的打字稿包。这个包的目的是导出一个 NgModule 以在 npm 安装后导入到更大的项目中。
当我尝试通过 jasmine 运行测试时,我收到错误消息:
/Users/don286/Dev/Angular2Modules/viewengine/node_modules/@angular/core/src/util/decorators.js:173
throw 'reflect-metadata shim is required when using class decorators';
我的 package.json 中有这些包:
"devDependencies": {
"@angular/core": "^2.0.0-rc.5",
"@types/es6-shim": "0.0.30",
"@types/node": "^6.0.37",
"jasmine": "^2.4.1",
"reflect-metadata": "0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "^0.6.17"
}
我试图将反射元数据导入项目,但它不起作用......我能够成功运行所有测试。这里的问题是当我尝试导入模块并使用导出的组件时。我留下了这个问题:
views:169 Error: Error: XHR error (404 Not Found) loading http://localhost:5555/node_modules/crypto/package.json(…)
如果我尝试只使用模块而不添加导入,那么它不会识别任何 Angular 指令属性,并且会针对 html 中的每个方面发出错误。示例错误如下所示:
zone.js?1472162416591:461 Unhandled Promise rejection: Template parse errors: Can't bind to 'ngClass' since it isn't a known property of 'div'.
这是查看如何处理导出的索引文件:
import { NgModule } from '@angular/core';
import { Component } from './lib/component/Component.component';
export const DIRECTIVES: any[] = [
Component
];
@NgModule({
exports: DIRECTIVES,
declarations: DIRECTIVES
})
export class Module { }
我一直在寻找其他项目以及他们如何做到这一点,但我找不到任何特别不同的东西......我不确定我缺少什么或不明白让这些 Angular 装饰器从外部构建根项目。