无法解析 xyz 的所有参数:(?, ?) 自 Angular2 CLI 升级以来
Posted
技术标签:
【中文标题】无法解析 xyz 的所有参数:(?, ?) 自 Angular2 CLI 升级以来【英文标题】:Can't resolve all parameters for xyz: (?, ?) since Angular2 CLI Upgrade 【发布时间】:2017-05-30 21:46:36 【问题描述】:我将运行良好的 Angular2 项目从 Beta .21 升级到了 beta .25.5。我已修复所有错误,以便在使用 AOT 或非 AOT(例如 ng serve)时不会出现错误
现在,当浏览器加载时,我的许多服务在运行时都会出现此错误,它会影响该文件的所有参数服务。
Can't resolve all parameters for *servicename*: (?)
首先我删除了我正在使用的桶并检查了循环依赖。
然后我将它们全部移动到 App.module 中的 Providers 数组中,并检查所有服务是否都有 @Injectable()。 摆脱错误的唯一方法是使用 Inject() 方法,例如:
import Injectable, Optional, SkipSelf, Inject from '@angular/core';
import Subject from 'rxjs/Subject';
export interface SpinnerState
show: boolean;
@Injectable()
export class SpinnerService
private spinnerSubject = new Subject<SpinnerState>();
spinnerState = this.spinnerSubject.asObservable();
constructor( @Optional() @SkipSelf() @Inject(SpinnerService) prior: SpinnerService)
这修复了错误,但后来我在第 3 方库中遇到了这个错误。如何调试它以找出问题的根本原因?
谢谢
“nativeError : Error: Can't resolve all parameters for Logger: (?). at SyntaxError.BaseError [as constructor] (http://localhost:4200/vendor.bundle.js:134335:27) [<r
”
这就是我的 App.Module 的外观:
providers: [
provide: AuthHttp,
useFactory: authHttpServiceFactory,
deps: [Http, RequestOptions],
,
[Logger],
LoggerService,
SpinnerService,
DataBreezeService,
ProfileService,
AuthService,
AuthGuardService,
CanDeactivateGuardService,
我也有这些:
"emitDecoratorMetadata": true,
"experimentalDecorators": true
(如前所述,我的项目在升级之前运行良好 - 我在发行说明中看不到任何明显的内容)。
更新 我一直在评论有问题的服务并从构造函数中删除参数,每次它只是移动到下一个服务 - 即。这里有更高级别的错误。现在我也在组件上遇到 404 错误,例如。
我不明白为什么——例如,404 订阅组件真的很简单:我什至尝试添加“moduleId: 'module.id'”,但这没有任何区别:
import Component from '@angular/core';
@Component(
selector: 'app-subscribe',
templateUrl: './subscribe.component.html',
styleUrls: ['./subscribe.component.scss']
)
export class SubscribeComponent
constructor()
GET http://localhost:4200/subscribe.component.html404(未找到)
【问题讨论】:
Logger
的构造函数是什么样子的?
你为什么用数组[Logger],
包装Logger
? - 应该可以正常工作,只是好奇
WRT 最后一个问题 - 这只是一个疏忽 - 我改变了它。
WRT Logger 库 - 我刚刚完全注释掉它 - 现在它移动到下一个类,但出现相同的错误 - 即。在更高级别上确实存在一些问题 - 我不认为这不是特定的类或服务错误。
好的,我设法解决了这个问题(12 小时后)。我仍然不知道是什么原因造成的,但以上所有内容都是红鲱鱼 - 我最终回滚了所有更改。我在我的 packages.json 中固定了一些确切版本的 Angular 和其他库,并删除了节点文件夹并重新安装。然后它似乎工作......非常令人沮丧,但至少它现在在 AOT 工作......感谢您的帮助
【参考方案1】:
通过删除所有桶导入并升级到 beta 28.3 来启动和运行
npm uninstall -g angular-cli
npm cache clean
npm install -g angular-cli@1.0.0-beta.28.3
并且还在项目文件夹中本地更新到 28.3(更新 angular-cli.json 和 package.json)。
【讨论】:
出于兴趣,您为什么不升级到 RC1?后面的版本中有很多好东西 是的,我回复了以防万一有人急需修复:)以上是关于无法解析 xyz 的所有参数:(?, ?) 自 Angular2 CLI 升级以来的主要内容,如果未能解决你的问题,请参考以下文章
MAVEN BUILD FAILURE - 无法解析项目 XYZ 的依赖关系
捆绑包 XYZ 无法解析。原因:缺少约束:Import-Package:ABC;无头 RCP 独立版本中的 version="1.0.0" 错误