Angular 14中angular-oauth2-oidc v14与@angular/core兼容问题求助
问题原因
你遇到的错误是因为angular-oauth2-oidc@14.0.0中使用了makeEnvironmentProviders和EnvironmentProviders这两个API,而这两个API是Angular 14.2.0版本才新增到@angular/core中的。你的@angular/core版本是^14.0.0,默认安装的是14.0.x或14.1.x系列版本,自然找不到这些导出项。
兼容方案
有两种可行的解决方式:
升级Angular核心包到14.2.x版本
保持在Angular 14大版本范围内,将@angular/core及其他Angular核心依赖(如@angular/common、@angular/compiler等)升级到14.2.x版本,执行以下命令:npm install @angular/core@~14.2.0 @angular/common@~14.2.0 @angular/compiler@~14.2.0 --save-exact(若使用Yarn,替换为
yarn add @angular/core@~14.2.0 @angular/common@~14.2.0 @angular/compiler@~14.2.0 --exact)降级angular-oauth2-oidc到适配Angular 14.0/14.1的版本
如果你不想升级Angular核心版本,可以将angular-oauth2-oidc降级到不依赖14.2新API的版本,比如14.0.0-beta.0这类早期14.x预览版。执行命令:npm install angular-oauth2-oidc@14.0.0-beta.0 --save-exact
总结
Angular 14中,@angular/core 14.2.0及以上版本能与angular-oauth2-oidc@14.0.0及后续14.x正式版本良好兼容;如果使用Angular14.0.x或14.1.x,需要选择未引入14.2新API的angular-oauth2-oidc版本。
内容的提问来源于stack exchange,提问作者Dave

