NPM卡住给出相同的错误EISDIR:目录上的非法操作,错误读取(本机)

无论我在哪个目录下,以及在cmd.exe中input“npm”之后,都会遇到此错误。 这里是npm-debug.log:

0 info it worked if it ends with ok 1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe', 1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js' ] 2 info using npm@2.14.12 3 info using node@v4.2.6 4 verbose stack Error: EISDIR: illegal operation on a directory, read 4 verbose stack at Error (native) 5 verbose cwd C:\Users\me 6 error Windows_NT 6.1.7601 7 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" 8 error node v4.2.6 9 error npm v2.14.12 10 error code EISDIR 11 error errno -4068 12 error syscall read 13 error eisdir EISDIR: illegal operation on a directory, read 13 error eisdir This is most likely not a problem with npm itself 13 error eisdir and is related to npm not being able to find a package.json in 13 error eisdir a package you are trying to install. 14 verbose exit [ -4068, true ] 

我尝试了多次卸载/重新安装nodejs,甚至删除了C:\ Users \ me \ AppData \ Roaming中的npm和npm-cache文件夹。 我不确定是什么原因导致了这个错误。 一秒钟工作正常,现在我无法摆脱这个错误。 日志中的解释没有意义,因为它在任何目录中都会出现此错误。 我应该注意到,以pipe理员身份运行命令提示符不会发生此错误。 我在这个星期五晚上拉我的头发试图得到这个固定的,任何帮助将不胜感激!

我在更改npm设置时遇到了同样的问题。 我用一个npm config set命令犯了一个错误,并在C:\Users\{User}\.npmrc添加了一行指向一个不存在的目录。 在我从.npmrc手动删除这行后,问题就没有了。

EISDIR代表“ 错误,是目录 ”。 这意味着NPM正在尝试对文件做些什么,但它是一个目录 。 在你的情况下,NPM正试图“ ”一个文件,这是一个目录(行:4)。 由于操作无法完成,错误被抛出。

三件事情确定在这里。

  1. 确保文件存在。 如果没有,你需要创建它。 (如果NPM取决于文件中的任何特定信息,则需要在那里提供这些信息)。
  2. 确保它实际上是一个文件,而不是一个目录。
  3. 它具有正确的权限。 您可以更改该文件以具有“sudo chmod 777 FILE_NAME”的所有权限。 (小心:您正在向该文件上的每个人授予读取,写入和执行权限)

我在Mac OS X(使用自制软件安装)上遇到了同样的问题,并且.npmrc并不是存储配置变量的唯一节点。 / usr / local / etc中有一个glocal npmrc配置文件,您必须使用以下命令进行编辑:

 sudo nano npmrc 

删除ca =行,或任何配置设置是打破了你的安装,保存该文件,并再次尝试npm,你应该看到它的工作。

做一个完整的卸载,包括删除路径等重新安装已经解决了这个问题,虽然很奇怪的问题。

如何从Windows中完全删除node.js

我有这个问题,吞咽。 问题是,gulp添加了一个依赖项到我的源文件,我想npm试图打开它:

 { "name": "name", "version": "2.0.0", "description": "", "main": "gulpfile.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "devDependencies": { "appname": "file://gulp", "gulp-concat": "^2.6.1", "gulp-electron": "^0.1.3", "gulp-shell": "^0.5.2", "gulp-uglify": "^2.0.0", "gulp-util": "^3.0.7", "node-7z": "^0.4.0" } } 

确保package.json文件中没有奇怪的引用。

在设置样板代码时,我遇到了类似的问题。 它正在读我的bundle.js文件作为一个目录。 就像这里所说的那样。 EISDIR是指一个目录而不是一个文件。 为了解决这个问题,我删除了文件,并重新创建(它最初是自动创建的)。 如果找不到文件(因为它隐藏),只需使用终端来查找和删除它。

检查以确保您从正确的目录运行npm install。

(例如,package.json文件可能是一个额外的目录。)