npm 命令 - 错误:EISDIR:对目录进行非法操作,读取

2024-02-06

在发出npm命令我收到一条错误消息,

Error: EISDIR: illegal operation on a directory, read
TypeError: Cannot read property 'get' of undefined

我在这方面经历过的帖子(没有解决我的问题):

使用 Node.js 我得到“错误:EISDIR,读取” https://stackoverflow.com/questions/20417118/using-node-js-i-get-error-eisdir-read

Node.JS readFileSync() 函数 https://stackoverflow.com/questions/25883775/node-js-readfilesync-function

我也尝试过编辑.npmrc文件以删除ca进入后,问题仍然存在。

有人可以帮忙吗?


根据个人经验,根据您的错误消息illegal operation on a directory,我猜想在执行 npm 时,它无法访问目录或文件。

正如其他人提到的,这通常是与 .npmrc 文件(通常位于用户的主目录 ~/.npmrc 中)相关的错误,该文件存储 npm 的自定义配置。值得注意的是,npm 可以有不同级别的配置:

  • 每个项目
  • per-user
  • global
  • built-in

您可以阅读有关 .npmrc 可能存在的不同位置的信息,以及与 npm 配置文件相关的其他文档npmrc 文档页面 https://docs.npmjs.com/files/npmrc.

如果您更愿意调查问题的根源而不仅仅是删除 .npmrc 文件,可以通过在文本编辑器(VS Code、记事本等)中打开 .npmrc 或发出以下命令来实现:

npm config edit

在文本编辑器中打开 .npmrc 后,您可以开始检查您拥有的任何配置。如果该文件为空或不存在,则您没有任何配置(在该级别),您可以继续调查另一个级别的 .npmrc 配置或问题的其他来源。

同样,如果您的 .npmrc 文件仅包含以分号 (;) 开头的文本行,则您没有活动配置,因为分号充当 .npmrc 中的注释(非活动)行。在某些情况下,比如你曾经跑步过npm config list然后 npm 为您创建了一个示例 .npmrc 文件,其中包含要配置的可能设置的列表,但所有这些设置都处于非活动状态,因为它们前面有一个分号。下面是 npm 生成的文件的片段npm config list is run:

;;;;
; npm userconfig file
; this is a simple ini-formatted file
; lines that start with semi-colons are comments.
; read `npm help config` for help on the various options

;;;;
; all options with default values
;;;;
; access=null

; allow-same-version=false

一旦您验证了 .npmrc 中的自定义配置处于活动状态,那么导致此错误的可能原因可能是您拥有的引用计算机上文件位置的任何自定义配置。就我而言,我为 .npmrc 中的 cacert 属性引用了 ca 证书的不完整路径:

损坏的配置:

; settings located in ~/.npmrc
cafile=C:/Users/kfrisbie/Documents/certs

请注意,上面的“certs”是对目录的引用,其中 npm 期望对文件的引用,因此当我更新路径以引用目录中想要的文件时,npm 再次开始正常运行。

固定配置:

; settings located in ~/.npmrc
; note, I was missing the name of the file in the certs directory
cafile=C:/Users/kfrisbie/Documents/certs/trusted_certs.pem
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

npm 命令 - 错误:EISDIR:对目录进行非法操作,读取 的相关文章

随机推荐