Angular 2意外的价值' MyDirective'由模块宣布的AppModule'

时间:2016-10-19 09:11:35

标签: javascript node.js angular typescript angular-cli

我正在尝试使用一个指令创建npm库,并在npm链接的帮助下在本地测试它。

但问题是,当我在声明数组中包含我的指令时,我收到此错误:

  

意外的价值' MyDirective'由模块' AppModule'

声明

我的图书馆结构:

的package.json

 {
   "name": "my-directive",
   "main": "./dist/index.js",
   "typings":  "dist/index.d.ts"
 }

我的src文件夹:

index.ts

export * from "./myDirective";

myDirective.ts

import {Directive} from '@angular/core';

@Directive({
  selector: "my-directive"
})
export class MyDirective {
  constructor() {
    console.log('directive works!');
  }
}

现在在我的Angular 2应用程序中,我链接了这个npm包:

import { MyDirective } from "my-directive";

// This line indeed log the constructor function...
console.log(MyDirective);
 // function MyDirective() {
    // console.log('directive works!');
 // }

@NgModule({
  declarations: [
    AppComponent,
    MyDirective
  ]
})

我错过了什么?

2 个答案:

答案 0 :(得分:0)

这里有类似问题的讨论和公关: https://github.com/angular/angular-cli/pull/2291

看看这可能会有所帮助。

答案 1 :(得分:0)

我遇到了这个问题并且我不确切知道原因,但是在 package.json 文件中,从依赖项字段中删除了Angular 2依赖项,devDependencies解决了这个问题和我的npm模块工作

你应该试一试。