找不到模块“@auth0/angular-jwt/”
Posted
技术标签:
【中文标题】找不到模块“@auth0/angular-jwt/”【英文标题】:Cannot find module "@auth0/angular-jwt/" 【发布时间】:2019-10-27 00:50:16 【问题描述】:我目前正在开发一个使用 ADFS 身份验证的 Web 应用程序。
我有以下运行时错误:
“找不到模块@auth0/angular-jwt”。
我正在使用 Angular 5.2.10。我尝试重新安装我的依赖项,但仍然有错误:
我在index.d.ts
中有错误:
找不到名称“Provider”和“ModuleWithProviders”
在jwt.interceptor.d.ts
:
找不到模块“@angular/common/http”和“rxjs/internal/Observable”
在jwtoptions.token.d.ts
:
找不到模块“@angular/core”
我没有修改任何这些文件。
这是一个角度版本的问题吗?我是否使用了错误版本的库?
感谢您的帮助!
【问题讨论】:
【参考方案1】:当节点模块中没有 auth 文件夹时会发生此错误。请检查它是否存在。 运行 npm install 并重启项目
【讨论】:
这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review【参考方案2】:确保您已安装“@auth0/angular-jwt/”所需的所有依赖项 ,
基本上,波纹管解决方案适用于所有错误“找不到模块”
-
首先安装所需的依赖项(这里你应该安装 npm i @auth0/angular-jwt
重启项目
如果仍然显示相同的错误,那么
-
删除您的 node_modules 文件夹
运行 npm i
【讨论】:
【参考方案3】:也许晚了,但对于遇到相同问题的任何人,请确保您在 app.module 或功能模块中导入了JwtModule
,然后在您的身份验证服务中您可以使用:
import JwtHelperService from '@auth0/angular-jwt';
代码示例:
import Injectable from '@angular/core';
import JwtHelperService from '@auth0/angular-jwt';
@Injectable(
providedIn: 'root',
)
export class AuthService
constructor(public jwtHelper: JwtHelperService)
public isAuthenticated(): boolean
const token = localStorage.getItem('token');
// Check whether the token is expired and return
// true or false
return !this.jwtHelper.isTokenExpired(token);
【讨论】:
【参考方案4】:回答您的第一个查询,即 找不到模块 @auth0/angular-jwt"
确保您在 node_modules 文件夹中指定了路径:- @auth0/angular-jwt/src/
如果是则使用
import JwtHelperService from '@auth0/angular-jwt/src/jwthelper.service';
如果没有,则首先使用 npm 或 yarn 运行安装
npm install @auth0/angular-jwt
# installation with yarn
yarn add @auth0/angular-jwt
【讨论】:
【参考方案5】:确保您已在正确的 node_modules 上安装了 @auth0/angular-jwt。这解决了我的问题。这是一个典型的依赖错误。
【讨论】:
【参考方案6】:以下格式的错误信息:
找不到模块
<module>
表示未满足您项目的必要依赖项,如果之前的安装在下载必要的库时出现问题,则需要安装或重新安装。 p>
也许您可以尝试以下方法,看看是否有帮助:
删除您的package-lock.json
文件以确保不存在依赖项的锁定问题。 注意:此文件将自动生成
rm package-lock.json
删除您之前的@987654324@ 目录
rm -rf node_modules
重新安装 package.json
文件中列出的依赖项
npm i
或 yarn install
如果您仍然抱怨缺少模块,请尝试安装并保存必要的依赖项到您的 package.json
文件中
例如,
找不到模块@auth0/angular-jwt"。
npm i @auth0/angular-jwt
-
仔细检查版本兼容性的依赖关系。例如,
@auth0/angular-jwt
v2 将与 Angular v6+ 和 RxJS v6+ 一起使用。对于 Angular v4.3 到 v5+,请使用 @auth0/angular-jwt
v1。我看到您提到您正在使用Angular 5.2.10.
,因此请确保您使用的是@auth0/angular-jwt
库的版本1。
希望对您有所帮助!
【讨论】:
【参考方案7】:-
删除您的
node_modules
文件夹
运行npm i
再试一次
【讨论】:
我在使用 Vue 3 应用时遇到了同样的问题。这也帮助了我。如果不是很明显,它也适用于其他 JS 框架,而不仅仅是 Angular。以上是关于找不到模块“@auth0/angular-jwt/”的主要内容,如果未能解决你的问题,请参考以下文章
@auth0/angular-jwt : 从解码的令牌中获取声明