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

VPS运行Node.js应用提示找不到'util/types'模块如何解决

Error: Cannot find module 'util/types' 报错排查方案

这个报错的核心触发逻辑是:运行环境的Node.js没有内置util/types核心模块——该模块从Node.js v10.0.0版本才开始内置,90%以上的同问题案例都是VPS端实际运行应用的Node版本和预期版本不一致导致,按以下顺序排查即可:

1. 先确认应用运行时的真实Node版本

不要直接以SSH终端执行node -v的输出为准,进程管理器、不同用户的环境变量差异都会导致实际运行应用的Node版本和终端看到的版本不一致:

  • 在你的应用入口文件最顶部加两行调试代码,直接输出运行进程的真实信息:
console.log('Runtime Node version:', process.version)
console.log('Node executable path:', process.execPath)
  • 启动应用后如果输出的版本号低于v10.0.0,直接定位为版本引用错误:
    • 如果你用PM2托管应用,启动时指定新版本Node的绝对路径(路径可以通过终端执行which node获取),示例:
      pm2 start app.js --interpreter /root/.nvm/versions/node/v20.18.0/bin/node
      
    • 如果你用Systemd托管应用,修改service配置文件的ExecStart字段,写死Node的绝对路径,不要只写node
    • 如果你用宝塔等面板托管应用,直接在面板的Node项目配置页,选择≥v10.0.0的Node版本后重启项目

2. 排查依赖安装异常

如果确认运行时Node版本≥v10.0.0,按以下步骤处理依赖问题:

  • 删除VPS端项目目录下的node_modules文件夹、锁文件(package-lock.json/yarn.lock/pnpm-lock.yaml)
  • 重新执行npm install --production安装生产依赖,不要直接把本地的node_modules文件夹上传到VPS,不同环境的依赖树、二进制包差异会导致模块引用异常
  • 执行npm ls util检查依赖树,如果有第三方包错误引用了非内置的util/types,将对应依赖降到兼容当前Node版本的稳定版即可

3. 修复损坏的Node安装

如果以上操作都无效,大概率是VPS上的Node安装不完整、核心模块缺失:

  • 先彻底卸载系统包管理器安装的旧版Node:
    # Debian/Ubuntu 系统
    apt purge -y nodejs nodejs-doc
    # CentOS/RHEL 系统
    yum remove -y nodejs
    
  • 用nvm或者官方二进制包重新安装Node.js LTS版本,安装完成后重新连接SSH确认版本正常,再启动应用

临时兼容方案

如果受限于环境暂时无法升级Node版本,可以安装第三方util包做polyfill兼容:

npm install util

注意:v10之前的Node.js版本早已停止官方维护,存在已知安全风险,优先建议升级到长期支持版


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:06:26