Nodejs 为什么用 npm install 不管什么都返回 -122?

发布于 1周前 作者 ionicwang 来自 nodejs/Nestjs
npm ERR! code Unknown system error -122
npm ERR! syscall close
npm ERR! errno -122
npm ERR! Unknown system error -122: Unknown system error -122, close

用的是学校的服务器,同学用 npm install 可以,但是我不管安装什么都返回这个错误,请问要怎么排查问题在哪里啊? 谷歌到的可能答案就这些:

  • 内存不够,但是这个每个同学都有分配的空间我的空间还有很多;
  • 没有权限,我对父目录的权限为 drwxrwsr-x ,子目录的权限为 drwxr-sr-x ,父目录的所有者不是我但是子目录的所有者是我; 尝试过清理缓存:npm cache clean --force 但不管用。 更换 npm node 版本,这个是固定的我们不能换 node v20.0.0, npm 9.6.4 感谢各位!

Nodejs 为什么用 npm install 不管什么都返回 -122?

5 回复

未知系统异常,那应该就不是 node 和 npm 的问题。
如果在学校的话,系统应该是是 win ,所以看这个 code 有可能是因为你的目录太长了?

[symstore erroring out with error code 122. - Microsoft Q&A]( https://learn.microsoft.com/en-us/answers/questions/603272/symstore-erroring-out-with-error-code-122)


问题解决了,原因有 2:
1. 就像 dfkjgklfdjg 说的那样,目录太长;
2. 我以为空间还有很多,但其实空间用超了,清除缓存的命令没有起效,光缓存就占用了配额的 90%(离谱!)
手动清空了缓存文件夹并修改了目录之后就成功安装了

对了,再次使用 npm 安装的时候用了 --verbose 以获得更详细的出错信息,正是通过这个更详细的出错信息才最终找到问题的

#2 ,用超了很有可能是和你项目的 webpack cache 有关系。配置不当就会越用越大,最后整个磁盘都塞满了。

在Node.js中,如果遇到使用npm install命令时无论安装什么包都返回错误代码-122,这通常不是一个标准的npm错误代码。npm的错误代码通常与特定的错误情况相关联,而-122并不在npm的官方错误代码列表中。这可能是由于以下几个原因造成的:

  1. 系统级错误:错误代码-122可能是由底层系统或操作系统返回的错误,而不是npm本身。这可能涉及到文件系统权限、磁盘空间不足、或其他系统资源限制。

  2. npm版本问题:尝试更新npm到最新版本,以确保没有已知的bug影响。可以使用以下命令更新npm:

    npm install -g npm[@latest](/user/latest)
    
  3. Node.js版本兼容性:确保你的Node.js版本与npm版本兼容。有时,过新或过旧的Node.js版本可能会导致问题。

  4. 检查npm日志:运行npm install时,npm会生成日志文件。检查这些日志文件可能会提供更多关于错误原因的线索。

  5. 权限问题:确保你有足够的权限来写入全局或项目级的node_modules目录。

  6. 清理npm缓存:有时候,清理npm的缓存可以解决一些奇怪的安装问题:

    npm cache clean --force
    

如果上述步骤都不能解决问题,建议详细检查系统日志或联系系统管理员,以查找可能导致这种错误的具体系统级问题。

回到顶部