发出npm
命令时,我正在接受错误说明,
Error: EISDIR: illegal operation on a directory, read
TypeError: Cannot read property 'get' of undefined
所以我在这方面经历的帖子(没有解决我的问题):
Using Node.js I get, "Error: EISDIR, read"
Node.JS readFileSync() function
我还尝试编辑.npmrc
文件以删除ca
条目,甚至在此之后问题仍然存在。
有人可以帮忙吗?
答案 0 :(得分:2)
我有同样的问题,但经过大量的研究后,我能够解决它。
首先尝试在您的计算机中找到npmrc文件。尝试使用此命令查找.npmrc
文件。
npm config ls -l | grep config
通常.npmrc
位于/Users/USER_NAME
。之后运行rm .npmrc
。它会删除节点用户配置,但你应该没问题。希望这会对你有所帮助。
答案 1 :(得分:0)
我遇到了同样的问题,但是在删除“ C:/ Users / {username} /”目录中的.npmrc文件后,它已得到解决。
答案 2 :(得分:0)
根据个人经验,根据您的错误消息illegal operation on a directory
,我猜想在执行npm时,它无法访问目录或文件。
正如其他人所提到的,这通常是与您的.npmrc文件(通常位于用户的主目录〜/ .npmrc中)有关的错误,该文件存储了npm的自定义配置。重要的是要注意,npm可以在各个级别进行配置:
您可以了解.npmrc可能存在的不同位置,以及与npmrc documentation page上的npm配置文件有关的其他文档。
如果您想调查问题的根源,而不是仅仅删除.npmrc文件,则可以通过在文本编辑器(VS Code,记事本等)中打开.npmrc或发出以下命令来完成:
npm config edit
在文本编辑器中打开.npmrc时,您可以开始查看所有配置。如果文件为空或不存在,则您没有任何配置(处于该级别),可以继续研究另一级别或问题其他来源的.npmrc配置。
类似地,如果您的.npmrc文件仅包含以分号(;)开头的文本行,则您没有活动的配置,因为分号充当.npmrc中的注释(非活动)行。在某些情况下,例如,如果您曾经运行过npm config list
,那么npm会为您创建一个示例.npmrc文件,其中包含要配置的可能设置的列表,但是所有这些设置都是无效的,因为它们以分号开头。以下是运行npm config list
时npm生成的文件的片段:
;;;;
; 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/e321153/Documents/certs
请注意,上面的“ certs”是对目录的引用,其中npm期望对文件的引用,因此,当我更新路径以引用目录中想要的文件时,npm再次正常运行。 / p>
固定配置:
; settings located in ~/.npmrc
cafile=C:/Users/e321153/Documents/certs/trusted_certs.pem
答案 3 :(得分:0)
对我(一个白痴)来说,问题是package-lock.json
是 一个目录,其中包含我的package-lock.json
文件强> ...
删除目录并将文件放在其所属的位置(位于我的项目的根目录)可以解决此问题。
希望这对任何人都有帮助,所以我不会对自己感到难过?
答案 4 :(得分:0)
尝试卸载 yarn 并再次运行 npm install 命令。如果有效,请安装纱线新版本。
答案 5 :(得分:-1)
找到并删除.npmrc
文件夹,该文件夹通常位于C:/Users/<username>/.npmrc