找不到模块“@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 iyarn 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 : 从解码的令牌中获取声明

text 安装@ auth0 / angular-jwt后出错

JwtModule 不添加授权标头

如何在 controller.js 上修复意外的令牌

颤振:“致命错误:找不到模块'位置'”Xcode找不到模块

windows找不到指定模块怎么办?