Skip to content

Bug: 在Node.js版本>=25的环境下无法启动 #615

@HyperCherry

Description

@HyperCherry

描述问题

在Node.js版本>=25的环境下,尝试通过pnpm app项目时报错,文末附可能的解决方案

> karin-project@1.0.0 app /home/cherry/TempDir/karin-project
> node index.mjs

[Karin][13:24:28.827][INFO] [ProcessManager] 系统信息 | Node: v25.6.1 | 平台: linux 6.18.9-zen1-2-zen | CPU核心: 16 | 内存: 31GB
[Karin][13:24:28.831][INFO] [ProcessManager] 启动子进程 | PID: 75789 | 入口: app.mjs | 参数: 无
(node:75789) Warning: `--localstorage-file` was provided without a valid path
(Use `node --trace-warnings ...` to show where the warning was created)
file:///home/cherry/TempDir/karin-project/node_modules/.pnpm/node-karin@1.14.3/node_modules/node-karin/dist/index.mjs:6625
  var origSlowBufEqual = SlowBuffer.prototype.equal;
                                    ^

TypeError: Cannot read properties of undefined (reading 'prototype')
    at requireBufferEqualConstantTime (file:///home/cherry/TempDir/karin-project/node_modules/.pnpm/node-karin@1.14.3/node_modules/node-karin/dist/index.mjs:6625:37)
    at requireJwa (file:///home/cherry/TempDir/karin-project/node_modules/.pnpm/node-karin@1.14.3/node_modules/node-karin/dist/index.mjs:6789:21)
    at requireSignStream (file:///home/cherry/TempDir/karin-project/node_modules/.pnpm/node-karin@1.14.3/node_modules/node-karin/dist/index.mjs:7016:14)
    at requireJws (file:///home/cherry/TempDir/karin-project/node_modules/.pnpm/node-karin@1.14.3/node_modules/node-karin/dist/index.mjs:7192:20)
    at requireDecode (file:///home/cherry/TempDir/karin-project/node_modules/.pnpm/node-karin@1.14.3/node_modules/node-karin/dist/index.mjs:7224:14)
    at requireJsonwebtoken (file:///home/cherry/TempDir/karin-project/node_modules/.pnpm/node-karin@1.14.3/node_modules/node-karin/dist/index.mjs:10170:13)
    at ../../node_modules/.pnpm/@karinjs+jsonwebtoken@1.1.1/node_modules/@karinjs/jsonwebtoken/dist/jsonwebtoken.js (file:///home/cherry/TempDir/karin-project/node_modules/.pnpm/node-karin@1.14.3/node_modules/node-karin/dist/index.mjs:10185:27)
    at __init (file:///home/cherry/TempDir/karin-project/node_modules/.pnpm/node-karin@1.14.3/node_modules/node-karin/dist/index.mjs:48:56)
    at ../../node_modules/.pnpm/@karinjs+jsonwebtoken@1.1.1/node_modules/@karinjs/jsonwebtoken/index.js (file:///home/cherry/TempDir/karin-project/node_modules/.pnpm/node-karin@1.14.3/node_modules/node-karin/dist/index.mjs:10201:5)
    at __init (file:///home/cherry/TempDir/karin-project/node_modules/.pnpm/node-karin@1.14.3/node_modules/node-karin/dist/index.mjs:48:56)

Node.js v25.6.1
[Karin][13:24:29.041][INFO] [ProcessManager] 子进程退出 | 退出码: 1 | 运行时间: 492053.4h
[Karin][13:24:29.041][INFO] [ProcessManager] 正在关闭子进程 | PID: 75789 | 运行时间: 492053.4h
[Karin][13:24:29.041][INFO] [ProcessManager] 发送终止信号 | PID: 75789 | 信号: SIGTERM
[Karin][13:24:29.041][INFO] [ProcessManager] 等待进程终止 | PID: 75789 | 超时: 200ms
[Karin][13:24:29.042][INFO] [ProcessManager] 子进程已退出 | PID: 75789
[Karin][13:24:29.043][INFO] [ProcessManager] 父进程退出 | 总运行时间: 0.2s | 重启次数: 0
[Karin][13:24:29.043][INFO] [ProcessManager] 父进程退出 | 总运行时间: 0.2s | 重启次数: 0

复现步骤

  1. 使用Node.js版本>=25的环境
  2. 尝试通过pnpm app启动项目
  3. 出现上方的报错

预期行为

项目正常启动

实际行为

启动时报错,项目无法启动

操作系统

ArchLinux(内核:6.18.9-zen1-2-zen)

Node.js 版本

25.6.1、pnpm版本10.28.2

项目版本

1.14.3

附加信息

排查过程

背景:SlowBufferNode.js 24中已被移除
注意到报错来自于@karinjs/jsonwebtoken@^1.1.1,通过查阅得知,此项目使用了"jsonwebtoken": "^9.0.2"
jsonwebtoken有现存的关于Node.js 24兼容性Issue,并且此问题已在9.0.3版本中被解决,此版本已在两个月前被发布。

可能的解决方案:升级@karinjs/jsonwebtoken中的jsonwebtoken9.0.3,由于我未能找到此包的代码仓库,故提出Issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions