错误详情

1
Unhandled rejection Error: ENOSPC: no space left on device, open '~/.npm/_cacache/tmp/46ba10d0'

结论

df -h 检查磁盘是否有空间

df -i 检查 inode 是否满了

0 字节的文件会占用inode, 删除部分 0 字节文件

1
2
3
4
5
# 找到 /home 下 0字节文件
sudo find /home -type f -size 0

# 找到 ~ 目录下, 文件名包含 npm-debug.log, 删除
sudo find ~ -type f -size 0 | grep "npm-debug.log" | xargs rm

过程

no space left on device 第一反应是磁盘满了, 所以直接检查 df -h 磁盘还有没有空间, 但是发现磁盘空间很多
搜索之后, 发现 这篇文章说My problem was that I ran out of inodes
通过 df -ih 检查之后, 发现 inode 的确是 100%, 通过 这篇文章知道 0 字节的文件会占用 inode, 发现有大量 npm-debug.log.xxxxx 文件, 删除后可以正常安装 npm

参考文档


文章若有纰漏请大家补充指正,谢谢~~
http://blog.xinshangshangxin.com SHANG 殇