加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用Angular 4时ngModule的问题

发布时间:2020-12-17 07:15:50 所属栏目:安全 来源:网络整理
导读:我有一个使用webpack配置的Angular(2)应用程序,它从另一个公共存储库导入模块. 因此,公共存储库有一个common.module.ts文件,其中包含以下内容: @NgModule({ imports: [...],declarations: [...],providers: [...],exports: [...]})export class CommonModul
我有一个使用webpack配置的Angular(2)应用程序,它从另一个公共存储库导入模块.

因此,公共存储库有一个common.module.ts文件,其中包含以下内容:

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

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

@NgModule({
  imports: [
    ...
    CommonModule,],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.

谁知道发生了什么事?已经使用@NgModule声明了CommonModule.
我检查了node_modules以防导入的文件出现问题,并找到了包含的common_module.d.ts

...
export declare class CommonModule {}

但对我来说很好,这是桶文件和装饰器已从这里删除.

有任何想法吗?

解决方法

好的,我终于在 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仓库.

进入我的应用程序项目后,我升级了运行的公共库
纱线升级my_github_repo / common#feature / angular4
(feature / angular4是我推送更改的公共项目中的分支的名称)

就是这样,这样我的项目中只有一个角度库,4.0.0,这是我的应用程序使用的.

我用另一个使用Angular 2.0.0的应用程序测试了这个,它也使用了公共库,在这种情况下我的node_modules中的angular版本是2.0.0,所以一切都很好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读