我已经在这里工作了2.5个小时并且通过了多个帖子。在https://github.com/angular/angular/issues/15763上尝试了几条建议,这让我很沮丧,因为上述错误的根源似乎不同。
我在角5和构建上,我得到错误:
错误输入:意外值' ToasterModule in ... / node_modules / angular5-toaster / dist / bundles / angular5-toaster.umd.js'由模块' AppModule导入../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(partial):
"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)没有被添加到上面的依赖列表中,但添加它也没有任何区别。
可能是什么问题?我很感激帮助,因为我可能会面临与其他图书馆相同的问题。
答案 0 :(得分:1)
这似乎是AoT版本和angular5-toaster的一个特殊问题。
我通过切换到似乎更稳定并提供相同功能的ng2-toastr解决了这个问题。
答案 1 :(得分:0)
您的应用模块的“提供商”部分中不应包含ToasterService。 ToasterModule提供服务。
但是,我不认为这是你的整个问题。
我在一个简单的工作示例中使用了StackBlitz上的库https://stackblitz.com/edit/angular-msm5nn
答案 2 :(得分:0)
不幸的是,在使用库是肤浅的情况下,接受的答案是很方便的,它没有深深地嵌入到项目中。
就我而言,从angular5-toaster
转移到ng2-toastr
需要花费很多时间。所以我找到了另一个可以帮助他人的解决方案
angular5-toaster建议按以下方式导入:
import {ToasterModule } from 'angular5-toaster';
我使用直接方法:
import { ToasterModule } from './../../node_modules/angular5-toaster/angular5-toaster';