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

首次执行npm i正常,再次执行出现Bluebird的JSON循环结构转换错误

解决npm install重复执行时的Bluebird循环引用JSON序列化错误

嘿,我之前也碰到过类似的坑!结合你给出的报错堆栈——能看到是全局安装的Bluebird在搞事情,这种重复执行npm install出问题的情况,大概率是全局包和npm内置依赖版本冲突导致的,咱们一步步来解决:

先确认问题根源

首先执行这个命令检查全局是否真的装了Bluebird:

npm list -g bluebird

如果返回了全局安装的Bluebird信息,那基本实锤了:npm自身已经内置了适配的Bluebird版本,全局安装的第三方版本和内置版本不兼容,导致进程通信时出现了循环引用的对象,触发了JSON.stringify的报错。

具体解决步骤

  1. 移除全局Bluebird
    直接卸载全局的Bluebird,因为npm本身已经自带了适配的版本,全局安装完全是画蛇添足:

    npm uninstall -g bluebird
    
  2. 清理npm缓存与本地依赖文件
    残留的缓存和锁文件可能还留着冲突的依赖信息,一起清理掉:

    # 强制清理npm缓存
    npm cache clean --force
    # 删除本地依赖文件夹
    rm -rf node_modules
    # 删除依赖锁文件
    rm package-lock.json
    
  3. 重新执行npm install
    现在再跑npm install,应该就能正常完成依赖安装了。

后续预防建议

  • 尽量不要全局安装和npm内置依赖同名的工具库(比如Bluebird、lodash这类常用包),很容易引发版本冲突。
  • 如果确实需要临时使用Bluebird这类工具,用npx临时调用就行,不用全局安装:npx bluebird your-script.js

你遇到的报错信息:

$foo/my-node-project npm install
/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:61
fn = function () { throw arg; };
^
TypeError: Converting circular structure to JSON
    at JSON.stringify (<anonymous>)
    at process.target._send (internal/child_process.js:686:23)
    at process.target.send (internal/child_process.js:597:19)
    at callback (/us...

内容的提问来源于stack exchange,提问作者christopherbalz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:28:58