Linux系统无法更新npm且执行npm命令报错cb.apply is not a function如何解决
问题原因
你遇到的cb.apply is not a function报错是Node.js v14和系统残留的旧npm v3版本不兼容导致的:Node.js 14最低要求配套npm v6及以上版本,旧版npm的底层API无法适配高版本Node.js的运行环境。从报错日志看你的Node.js安装在/usr/local/bin/路径,npm安装在/usr/bin/路径,属于两个不同的安装源,版本没有对齐,你重装Node.js后问题仍存在,是因为旧版npm的全局执行文件、依赖目录、缓存没有被同步清理,残留的旧版本优先被系统调用。
解决步骤
- 第一步:彻底清理所有旧npm和Node.js残留文件
sudo rm -rf /usr/bin/npm /usr/local/bin/npm /usr/local/lib/node_modules ~/.npm
如果是通过apt/yum等包管理器安装的Node.js,先执行卸载命令再清理残留:
# Debian/Ubuntu系操作系统 sudo apt remove --purge nodejs npm -y sudo apt autoremove -y # CentOS/RHEL系操作系统 sudo yum remove nodejs npm -y
- 第二步:重新安装匹配的Node.js版本
直接安装Node.js 14对应的LTS版本,官方安装包会自带适配的npm v6版本,安装完成后执行以下命令确认版本正常即可:
node -v npm -v
内容的提问来源于stack exchange,提问作者dontboaboutprograming
相关产品推荐
相关产品推荐

