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

升级Node.js/npm后执行npm命令触发ERR_REQUIRE_ESM错误求助

解决VSCode终端中npm ERR_REQUIRE_ESM全局命令失效问题

问题场景

  • 初始使用系统自带的早期npm v10版本,升级至最新非LTS版本并重启后,执行npm init触发ERR_REQUIRE_ESM错误:提示C:\Program Files\nodejs\node_modules\npm\node_modules\cacache\lib\entry-index.js中用require()加载ES模块p-map的index.js不被支持,建议改用动态import()
  • 降级到LTS版本后,VSCode终端内除了npm命令本身,所有子命令(如npm init、npm install <包名>)均触发相同错误,但系统原生Powershell、CMD执行所有npm命令完全正常

可行解决方案

1. 彻底重启VSCode

完全关闭VSCode所有窗口,重新打开后再尝试执行npm命令——VSCode集成终端可能缓存了旧的node/npm环境路径,重启后会刷新环境。

2. 校验VSCode终端的npm路径

在VSCode终端执行where npm,对比Powershell中执行同命令的输出:

  • 若路径不一致,说明VSCode加载了旧的npm路径:
    • 打开VSCode设置(Ctrl+,),搜索「terminal.integrated.env.windows」(Windows系统)
    • 删除自定义PATH中旧的node/npm路径,确保指向当前安装的LTS版本路径(默认是C:\Program Files\nodejs\)

3. 重置VSCode终端配置

  • 按Ctrl+Shift+P打开命令面板,输入「Terminal: Select Default Profile」,切换到Powershell或CMD作为默认终端,然后重启终端
  • 若仍有问题,删除VSCode缓存目录(Windows下为%APPDATA%\Code\Cache和%APPDATA%\Code\CachedData),再重启VSCode

4. 全局重新安装npm

在系统Powershell中执行npm install -g npm@lts,强制重新安装LTS版本的npm,完成后重启VSCode终端再测试。

原因说明

VSCode集成终端会保留会话环境变量缓存,当你升级/降级npm后,终端未及时更新环境变量,导致调用了旧的npm依赖文件(如cacache的旧版本依赖不兼容的ES模块);而系统原生Powershell/CMD每次启动都会重新加载系统环境变量,因此不受缓存影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:37:12