如何在Bun JS中导入@types定义?jsonwebtoken报错求助
解决Bun中使用jsonwebtoken的类型定义及运行报错问题
类型定义导入问题
- 直接安装对应的类型包即可,执行命令:
安装完成后,TypeScript就能正确识别jsonwebtoken的类型声明。bun add -D @types/jsonwebtoken
运行时instanceof KeyObject报错问题
这个错误是因为Bun内置的crypto模块与Node.js的KeyObject实现存在差异,导致jsonwebtoken的类型判断失效,提供两种解决方案:
方案一:使用Bun内置JWT工具(推荐)
Bun原生支持JWT操作,无需额外安装jsonwebtoken,直接用内置API:
const token = Bun.jwt.sign({ name: "name" }, "secret"); console.log(token);
该方案更轻量,完全适配Bun环境,没有兼容性问题。
方案二:兼容现有jsonwebtoken代码
如果必须保留jsonwebtoken的使用,可手动替换为Node.js的crypto模块:
在代码最顶部添加以下代码,覆盖全局的crypto对象:
import crypto from "node:crypto"; globalThis.crypto = crypto;
之后再正常导入并使用jsonwebtoken即可:
import { sign } from "jsonwebtoken"; const token = sign({ name: "name" }, "secret"); console.log(token);
内容的提问来源于stack exchange,提问作者Huakun Shen
相关产品推荐
相关产品推荐

