Jenkins构建时突发npm ERR! ENOTDIR错误求助(未做任何改动)
解决Jenkins构建时npm报错ENOTDIR的问题
我之前在Jenkins上部署项目时碰过完全一样的坑!明明没改代码,突然就弹出这个错误,大概率是npm缓存损坏或者工作空间残留文件搞的鬼,给你几个亲测有效的解决步骤:
1. 强制清理npm缓存
.staging目录是npm下载包时临时存放的地方,缓存损坏很容易导致路径识别异常。在Jenkins的构建步骤里先加这行命令,或者登录服务器手动执行:
npm cache clean --force
2. 删除工作空间的残留文件
有时候旧的node_modules或者package-lock.json会干扰npm的解析逻辑,构建前先清理这些文件:
rm -rf node_modules package-lock.json
之后再重新执行npm install。
3. 检查Jenkins用户的目录权限
确保Jenkins用户对工作空间目录有完整的读写权限,权限不足可能导致文件/目录状态异常:
chown -R jenkins:jenkins /var/lib/jenkins/workspace
4. 升级npm版本
你当前用的npm 3.10.10版本比较老旧,和Node.js 10.15.3搭配可能存在已知的路径解析bug。建议升级到Node.js 10兼容的最新npm 6版本:
npm install -g npm@6
补充说明
这个ENOTDIR错误本质是npm尝试打开/var/lib/jenkins/workspace/node_modules/.staging/@types/datatables.net-2acd857c/package.json时,发现这个路径对应的不是预期的文件/目录(可能缓存损坏导致文件变成了异常状态),所以清理缓存和残留文件是最直接的修复方式。
内容的提问来源于stack exchange,提问作者R. Duya
相关产品推荐
相关产品推荐

