2017-04-04 48 views
5

我已经与的WebPack其中进口模块从另一种常见的存储库构成的角(2)的应用程序。问题4

所以,共同的资料库有这样的一个common.module.ts文件:

@NgModule({ 
    imports: [...], 
    declarations: [...], 
    providers: [...], 
    exports: [...] 
}) 
export class CommonModule {} 

,然后在我的主要的应用程序,我在我的app.module.ts导入此

@NgModule({ 
    imports: [ 
    ... 
    CommonModule, 
    ], 
    declarations: [...], 
    providers: [...], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 

这在Angular2中正常工作,但后来我试图在我的主项目中迁移到Angular 4.0(不使用公共存储库,因为其他存储库也没有使用它)。 所以,我改变我的版本在我的package.json和重建,一切似乎很好,但后来当我在浏览器中加载应用程序,我得到这个

Uncaught Error: Unexpected value 'CommonModule' imported by the module 'AppModule'. Please add a @NgModule annotation.

任何人都知道这是怎么回事? CommonModule已经使用@NgModule进行了声明。 我检查,以防node_modules并且有一些错误导入的文件,发现其中含有

... 
export declare class CommonModule {} 

但是这对我来说是罚款common_module.d.ts,这桶文件和装饰已移出这里。

任何想法?

+0

你有没有回滚到你以前的package.json前擦除node_modules? – Stanislasdrg

+0

我擦除node_modules,又改版本角4和'''纱install'''。 – David

+0

'CommonModule'也来自'@angular \ common',是不知怎的搞乱了?你有没有尝试重命名你的CommonModule? –

回答

2

好吧,我终于得到了帮助Angular github得到它的工作。

所以,我不得不这样做是我常用的工程变更依赖于使用任何角度库> = 2.0.0,这样

"dependencies": { 
"@angular/core": ">=2.0.0", 
"@angular/common": ">=2.0.0", 
"@angular/router": ">=3.0.0", 
"@angular/http": ">=2.0.0", 
"@angular/platform-browser": ">=2.0.0", 

我跑yarn更新依赖关系,然后推变化到我的github回购。

在我的应用程序的项目

有一次,我升级我跑 yarn upgrade my_github_repo/common#feature/angular4 (功能/ angular4是我共同的项目分支的名字,我推的变化)

,就是这样公共库,这种方式有我的项目中只有一个角度库,4.0.0,这是我的应用程序使用的。

我与角2.0.0其他应用程序也使用了公共库和在这种情况下角的版本在我node_modules是2.0.0测试这一点,所以都好。

+0

在哪个文件你声明的“依赖条件”键? 我有同样的问题,我试图找到这个错误的解决方案 –