You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bun JS中导入@types定义?jsonwebtoken报错求助

解决Bun中使用jsonwebtoken的类型定义及运行报错问题

类型定义导入问题

  • 直接安装对应的类型包即可,执行命令:
    bun add -D @types/jsonwebtoken
    
    安装完成后,TypeScript就能正确识别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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 08:30:43