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

Node.js v12.13.1执行npm -v报primordials未定义错误求助

问题现象

在Windows终端执行npm -v查看版本时触发报错,报错信息如下:

C:\Users\ASUS ZenBook I5>npm -v
evalmachine.<anonymous>:27
const { Math, Object } = primordials;
                         ^

ReferenceError: primordials is not defined
    at evalmachine.<anonymous>:27:26
    at Object.<anonymous> (C:\Users\ASUS ZenBook I5\AppData\Roaming\npm\node_modules\npm\node_modules\graceful-fs\fs.js:11:8)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Module.require (internal/modules/cjs/loader.js:852:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (C:\Users\ASUS ZenBook I5\AppData\Roaming\npm\node_modules\npm\node_modules\graceful-fs\graceful-fs.js:3:27)
    at Module._compile (internal/modules/cjs/loader.js:959:30)

当前本地安装的Node.js版本为v12.13.1。

报错根因

该报错是典型的Node.js与npm依赖版本不兼容问题:

  • Node.js v12.x版本移除了内部暴露的primordials全局变量
  • 当前全局目录下的npm是历史安装残留的旧版本,其依赖的graceful-fs@3.x及更早版本会主动调用已被移除的primordials对象,直接触发引用错误
    从报错堆栈可以定位到冲突文件来自全局npm的依赖目录,属于旧npm残留导致的问题,和Node.js核心运行逻辑无关。
解决步骤

按以下顺序操作即可修复:

  • 关闭所有已打开的终端窗口,打开文件资源管理器进入路径C:\Users\ASUS ZenBook I5\AppData\Roaming\,找到npm和npm-cache两个文件夹彻底删除,清除旧版本npm的所有残留文件。
  • 打开系统「控制面板」-「程序和功能」,在已安装程序列表中找到Node.js v12.13.1,右键选择「更改」,在弹出的安装向导中选择Repair(修复)选项,等待安装程序完成修复流程。修复流程会自动部署与Node.js v12.13.1完全匹配的npm 6.12.1版本,该版本内置的graceful-fs为兼容Node 12的更新版本,不会再调用被移除的primordials变量。
  • 修复完成后重新打开终端,执行npm -v命令,若正常输出版本号(预期为6.12.1)则说明问题已解决。

如果你不需要固定使用Node.js v12.13.1,也可以直接安装Node.js 16/18长期支持版,安装时选择覆盖旧版本,安装完成后会自动部署匹配版本的npm,同样可以解决该报错。

内容的提问来源于stack exchange,提问作者Whipple's

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:01:22