Angular 错误:t没有提供程序
我正试图通过ng build--prod将angular代码编译到生产模式,并获得了成功,但在浏览器中我得到了错误:Angular 错误:t没有提供程序,angular,angular5,Angular,Angular5,我正试图通过ng build--prod将angular代码编译到生产模式,并获得了成功,但在浏览器中我得到了错误: ERROR p {__zone_symbol__error: Error: Uncaught (in promise): Error: NullInjectorError: No provider for t! 错误:NullInjectorError:…,…} 当我只运行ng build时,html工作正常 我尝试了git hub上提到的几个链接: 没有多大帮助 附加my
ERROR p {__zone_symbol__error: Error: Uncaught (in promise): Error: NullInjectorError: No provider for t!
错误:NullInjectorError:…,…}
当我只运行ng build时,html工作正常
我尝试了git hub上提到的几个链接:
没有多大帮助
附加my Package.json文件内容:
{
“名称”:“xxx”,
“版本”:“0.0.0”,
“许可证”:“麻省理工学院”,
“角cli”:{},
“脚本”:{
“ng”:“ng”,
“开始”:“ng发球”,
“测试”:“ng测试”,
“pree2e”:“webdriver管理器更新--独立错误--gecko错误”,
“e2e”:“量角器”,
“build”:“ng build&&node server.js”,
“dev”:“ng build-w&nodemon server.js--watch dist--watch server”,
“生产”:“ng构建--prod&node server.js dist server”
},
“私人”:没错,
“依赖项”:{
“@angular/animations”:“~5.0.0”,
“@angular/common”:“~5.0.0”,
“@angular/compiler”:“~5.0.0”,
“@angular/compiler cli”:“~5.0.0”,
“@angular/core”:“~5.0.0”,
“@angular/forms”:“~5.0.0”,
“@angular/http”:“~5.0.0”,
“@angular/platform浏览器”:“~5.0.0”,
“@angular/platform browser dynamic”:“~5.0.0”,
“@angular/router”:“~5.0.0”,
“@jaspero/ng2警报”:“0.0.7”,
“axios”:“^0.17.0”,
“正文分析器”:“^1.18.2”,
“cookie解析器”:“^1.4.3”,
“核心js”:“^2.4.1”,
“以太坊JS tx”:“^1.3.3”,
“快车”:“^4.16.2”,
“快速会话”:“^1.15.6”,
“猫鼬”:“^4.12.6”,
“rxjs”:“^5.0.1”,
“ts助手”:“^1.1.1”,
“web3”:“^1.0.0-beta.24”,
“web3提供程序引擎”:“^13.3.3”,
“zone.js”:“^0.7.2”
},
“依赖性”:{
“@angular/cli”:“^1.5.0”,
“@angular/compiler cli”:“1.5.0”,
“@types/jasmine”:“2.5.38”,
“@types/node”:“^6.0.42”,
“codelyzer”:“~2.0.0-beta.1”,
“茉莉花芯”:“2.5.2”,
“jasmine spec reporter”:“2.5.0”,
“因果报应”:“1.2.0”,
“karma chrome启动器”:“^2.0.0”,
“karma cli”:“^1.0.1”,
“因果报应茉莉”:“^1.0.2”,
“因果报应重新映射伊斯坦布尔”:“^0.2.1”,
“量角器”:“~4.0.13”,
“ts节点”:“1.2.1”,
“tslint”:“^4.3.0”,
“类型脚本”:“2.4.2”
}
}
您试图使用的服务未在AppModule的提供程序中列出。将服务添加到提供商列表中以使其正常工作。您试图访问服务,但模块中未提供服务。通过编辑文件禁用terser插件:
node_modules/@angular devkit/build angular/src/angular cli files/models/webpack configs/common.js
并指出:
extraMinimizers.push(new TerserPlugin({
sourceMap: scriptsSourceMap,
parallel: true,
cache: true,
terserOptions,
}));
使用ng build frontend--prod重新构建应用程序,您应该能够在控制台中看到无法注入的服务。运行以下命令,首先查找缺少的服务依赖项。
在本地修复它,Prod build将自动工作
ng serve--prod--optimization=false
我不想放弃优化,因为捆绑包的大小增加了大约8倍
幸运的是,这是一件愚蠢的事情:)我在我的一个组件中有一个providers:[]部分,当我删除它时,错误已经消失了
希望这可能对某人有所帮助 错误:NullInjectorError:没有t的提供程序!(注意:仅对于错误,提供程序为“t”,如果它是另一个提供程序,则可能是因为没有声明app.module->provider[])
当我使用ng“ng build--prod”编译时,问题出现了,切换到“npm run build--prod”,问题就消失了
尝试使用另一个版本或npm编译。我遇到了“错误:NullInjectorError:没有t的提供程序!”问题,因为我在导入应用程序中的ReactiveFormsModule之前使用了FormBuilder。该模块用于,用于angular 2及更高版本。是否有提供商中未提供的任何其他服务?是的,它是@jaspero/ng2 alerts提供的AlerService,在他们的文档中未提及。添加它使它工作。谢谢你,伙计。您可以添加您的答案。@PriyankGupta如何检查未添加的提供程序?我的意思是我有一个大的应用程序,所以很难检查所有的东西。你有什么提示吗,怎么做?这绝对是很棒的。我无法理解为什么这不是在angular或ionic中测试缺失模块的标准选项/标志。有一个标志:--optimization=False这正是我要找的。。在生产中,很难再确认出什么问题。谢谢:)你救了我一天@vigneshThank你,谢谢你,这是我处境的完美答案!