2016-01-23 76 views
20

无论我在哪个目录以及在cmd.exe中键入“npm”后,都会出现此错误。这里是NPM-的debug.log:NPM卡住给出相同的错误EISDIR:目录上的非法操作,在错误时读取(本地)

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 [email protected] 
3 info using [email protected] 
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,我甚至删除NPM和NPM-缓存文件夹C:\用户\我\应用程序数据\漫游。我不确定发生了什么问题。一秒钟它工作正常,现在我无法摆脱这个错误。日志中的解释没有意义,因为它在任何目录中都会出现此错误。我应该注意到,以管理员身份运行命令提示符不会发生此错误。我在这个星期五晚上拉我的头发试图让这个固定,任何帮助将不胜感激!

+0

我发现这个错误很常见,当人们更新npm时,我想知道这个错误是否在更新npm时开始,或者如果你甚至更新过? – Clavin

+0

这是一台新电脑,所以我在过去几天安装了节点。我只是在管理员模式下进行了更新,但不是运气 – AnotherMike

回答

17

我遇到了同样的问题,而我是改变一些NPM设置。我犯了一个npm config set命令,并在C:\Users\{User}\.npmrc中添加了一条指向不存在的目录的行。在我从.npmrc手动删除该行后,问题消失了。

+1

拯救生命!谢谢! :-) –

3

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

sudo nano npmrc 

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

+0

我现在爱你。 – john

+0

很高兴我能帮到你。 – rncrtr

0

我有这个问题与吞噬。问题是,大口添加了一个依赖于我的源文件,我觉得故宫试图打开它:

{ 
    "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文件。

0

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

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

42

EISDIR代表 “错误,将目录”。这意味着NPM正在尝试对某个文件进行操作,但它是目录。在你的情况下,NPM正试图“读取”一个文件,这是一个目录(行:4)。由于操作无法完成,因此会引发错误。

三件事,以确保在这里。

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

这应该是被接受的答案,因为它包含有关问题的信息以及解决方案 – schu34

0

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

2

在我来说,我得到了“EISDIR:非法操作上的目录,请阅读”因为在我.angular-cli.json文件我没有提供一个完整路径“脚本:”

对于例如,我有

"scripts": [ 
     "../node_modules/hammerjs", 
     "../node_modules/moment" 
     ], 

实际上它应该是

"scripts": [ 
     "../node_modules/hammerjs/hammer.min.js", 
     "../node_modules/moment/min/moment.min.js" 
     ], 
0

有同样的问题,直到我试图删除文件夹git的。有效。我想这类问题可能有不同的原因。

0

如果您的问题与React Native打包程序相关联。尝试使用react-native start --reset-cache重置高速缓存。

相关问题