运行npm命令报错os.tmpDir is not a function,如何解决?
解决npm运行报错
TypeError: os.tmpDir is not a function的方法 问题根源
报错源于当前npm版本依赖的osenv包调用了Node.js已废弃的os.tmpDir()API,而新版Node.js已将该方法替换为小写的os.tmpdir(),引发兼容性冲突。
解决方案
方案1:升级npm到兼容版本
- 卸载全局npm:
npm uninstall -g npm - 安装最新稳定版npm:
npm install -g npm@latest - 若卸载失败,重新运行Node.js安装程序,选择「修复」选项,自动更新配套的npm版本。
方案2:临时代码修复
- 定位报错文件:
C:\Users\Gowthamreddy\AppData\Roaming\npm\node_modules\npm\node_modules\osenv\osenv.js - 打开文件后找到第49行,将
return os.tmpDir()修改为return os.tmpdir()(注意将大写D改为小写d) - 保存文件后重试
npm install express。
方案3:升级Node.js到LTS版本
- 执行
node -v查看当前Node.js版本,若版本低于14.x,直接安装官方提供的最新LTS版本,新版本会自带兼容的npm,从根源解决兼容性问题。
内容的提问来源于stack exchange,提问作者Gowtham Reddy Asodi
相关产品推荐
相关产品推荐

