【问题标题】:Unexpected value ToasterModule Please add a @NgModule annotation非预期值 ToasterModule 请添加@NgModule 注释
【发布时间】:2018-08-24 23:53:32
【问题描述】:

我已经在这里工作了 2.5 个小时,并且浏览了多个帖子。在https://github.com/angular/angular/issues/15763 上尝试了几个建议,这让我很沮丧,因为上述错误的来源似乎不同。

我在 Angular 5 和构建中,我收到错误:

错误:意外的值“ToasterModule in .../node_modules/angular5-toaster/dist/bundles/angular5-toaster.umd.js”由模块“AppModule in ../src/app/app.module”导入.ts'。请添加@NgModule 注解。

该库没有自己的 node_modules 副本。它自己的tsconfig.js 文件是:

{
  "compilerOptions": {
    "target": "es2015",
    "module": "es2015",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false,
    "declaration": true,
    "stripInternal": true,
    "noUnusedLocals": false,
    "types": [ "jasmine", "node" ],
    "lib": ["es2015", "dom"]
  },
  "include": [
    "angular5-toaster.ts",
    "src/**/*"
  ],
  "exclude": [
      "node_modules",
      "bundles"
    ]
}

angular5-toaster/package.json(部分):

"devDependencies": {
    "@angular/animations": "4.1.0",
    "@angular/common": "4.1.0",
    "@angular/compiler": "4.1.0",
    "@angular/compiler-cli": "4.1.0",
    "@angular/core": "4.1.0",
    "@angular/platform-browser": "4.1.0",
    "@angular/platform-browser-dynamic": "4.1.0",
    "@angular/platform-server": "4.1.0",
    "@types/jasmine": "2.5.47",
    "@types/node": "7.0.12",
"module": "angular5-toaster.js",
  "name": "angular5-toaster",
  "optionalDependencies": {},
  "peerDependencies": {
    "@angular/common": ">=4.0.0 <=5.0.2",
    "@angular/compiler": ">=4.0.0 <=5.0.2",
    "@angular/core": ">=4.0.0 <=5.0.2",
    "rxjs": "^5.0.0-beta.11"
  },

我的 app.module.ts:

  import { NgModule} from '@angular/core';
import { CommonModule } from '@angular/common';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { Ng4LoadingSpinnerModule } from 'ng4-loading-spinner';
import {ToasterModule, ToasterService} from 'angular5-toaster';
@NgModule({
    imports: [
        CommonModule,
        BrowserModule,ToasterModule,
        BrowserAnimationsModule,
        Ng4LoadingSpinnerModule.forRoot(),

        AppRoutingModule
    ],
    declarations: [AppComponent],
    providers: [ToasterService
    ],
    bootstrap: [AppComponent, ]
})
export class AppModule {}

package.json:

{
  "name": "RLRC",
  "version": "4.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --ec true",
    "build": "ng build --prod",
    "gitbuild": "ng build --prod --base /start-angular/RLRC/master/dist/",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^5.0.1",
    "@angular/common": "^5.0.1",
    "@angular/compiler": "^5.0.1",
    "@angular/core": "^5.0.1",
    "@angular/forms": "^5.0.1",
    "@angular/http": "^5.0.1",
    "@angular/platform-browser": "^5.0.1",
    "@angular/platform-browser-dynamic": "^5.0.1",
    "@angular/router": "^5.0.1",
    "@ng-bootstrap/ng-bootstrap": "^1.0.0-beta.5",
    "@ngx-translate/core": "^8.0.0",
    "@ngx-translate/http-loader": "^2.0.0",
    "chart.js": "^2.7.1",
    "core-js": "^2.5.1",
    "datatables.net": "^1.10.16",
    "font-awesome": "^4.7.0",
    "jquery": "^3.2.1",
    "ng2-charts": "^1.6.0",
    "ng4-loading-spinner": "^1.1.1",
    "ngx-treeview": "^2.0.1",
    "rxjs": "^5.5.2",
    "yarn": "^1.3.2",
    "zone.js": "^0.8.18"
  },
  "devDependencies": {
    "@angular/cli": "1.5.0",
    "@angular/compiler-cli": "^5.0.1",
    "@angular/language-service": "^5.0.1",
    "@types/jasmine": "~2.6.3",
    "@types/jasminewd2": "~2.0.3",
    "@types/jquery": "^3.2.17",
    "@types/node": "~8.0.51",
    "codelyzer": "~4.0.1",
    "jasmine-core": "~2.8.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~1.7.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^1.2.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.2.0",
    "ts-node": "~3.3.0",
    "tslint": "~5.8.0",
    "typescript": "~2.4.2"
  }
}

我注意到 angular5-toaster(版本 1.0.2)没有添加到上面的依赖列表中,但添加它也没有任何区别。

可能是什么问题?我会很感激帮助,因为我可能会在其他库中遇到同样的问题。

【问题讨论】:

  • 您为烤面包机选择了错误的模块,请使用此模块,因为它的下载量很大并且比 angular-5 烤面包机更稳定npmjs.com/package/ng2-toastr
  • 嗯。感谢@SantoshSingh Lemme 在我现在更改任何库之前查看解决方案。老实说,我希望有一个解决方案而不是一个解决方案,因为我不知道 ng2-toastr 会给我带来同样的问题。
  • 做到了@SantoshSingh。无论如何它们都是一样的,所以很好。

标签: angular


【解决方案1】:

不幸的是,在库的使用是肤浅的情况下,接受的答案很方便,它没有深深地嵌入到项目中。 就我而言,从angular5-toaster 转移到ng2-toastr 需要很长时间。所以我找到了另一个可以帮助其他人的解决方案。 angular5-toaster 建议按如下方式导入:

import {ToasterModule } from 'angular5-toaster';

我使用直接方法:

import { ToasterModule } from './../../node_modules/angular5-toaster/angular5-toaster';

【讨论】:

  • 嘿巴拉巴斯...谢谢。老实说,我在任何方向都没有看到这一点。它编译起来容易流畅吗?我实际上喜欢 angular5-toaster 有两个原因,并且不介意认真地回到它。
  • @NieSelam Does it compile easily and smoothly? - 对我来说是的,我希望这个过程对你来说也很顺利。
【解决方案2】:

这似乎是 AoT 构建和 angular5-toaster 的一个特殊问题。

我通过切换到ng2-toastr 解决了这个问题,它似乎更稳定并提供相同的功能。

【讨论】:

  • @joshcomley...最终做了同样的事情。
【解决方案3】:

您的应用模块的“提供者”部分不应包含 ToasterService。 ToasterModule 提供服务。

但是,我认为这不是你的全部问题。

我在 StackBlitz 上放了一个使用该库的简单工作示例,地址为 https://stackblitz.com/edit/angular-msm5nn

【讨论】:

  • 感谢@GreyBeardedGeek。
  • 如果我的回答解决了您的问题,请“接受”。谢谢!
猜你喜欢
  • 2018-06-26
  • 2018-04-16
  • 1970-01-01
  • 2019-02-24
  • 2017-10-23
  • 2018-04-30
  • 2018-07-23
  • 2018-01-10
  • 2018-05-24
相关资源
最近更新 更多