无论我在什么目录下,无论我在cmd.exe中键入“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 ]

I have tried and uninstalling/reinstalling nodejs multiple times, I even deleted npm and npm-cache folders in C:\Users\me\AppData\Roaming. I'm not sure what went wrong to cause this. One second it was working fine, and now I can't get rid of this error. The explanation in the log does not make sense, as it gives this error in any directory. I should note that running a command prompt as administrator does not give this error. I'm pulling my hair out this Friday evening trying to get this fixed, any help would be greatly appreciated!


当前回答

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

其他回答

我知道这并不是特别在问永远的js..但谷歌引导我到这里所以…对我来说,这就像一个结尾的斜杠一样简单。

我只是改变了:

forever start -a -l /dev/null/ /var/www/node/my_file.js

To:

forever start -a -l /dev/null /var/www/node/my_file.js

错误消失了

对我来说,修复是在目录名称后添加斜杠

在我的情况下,我在MAC (Mojave OS)中使用以下命令安装create-react-app时遇到了这个问题:

sudo npm install create-react-app -g

得到了这样的错误:

npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/scheduler'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/symbol'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/testing'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/util'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/src/webSocket'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/symbol'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/testing'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/util'
npm WARN tar EISDIR: illegal operation on a directory, open '/usr/local/lib/node_modules/.staging/rxjs-a84420a7/webSocket'

我读过npm.community尝试安装没有sudo:

npm install create-react-app -g

它实际上解决了我的问题!!

在Mac:

每个用户配置文件:~/.npmrc

所以大多数答案都说它与.npmrc文件有关。

在我的例子中,我正在使用无服务器部署和消息部署无服务器应用程序

EISDIR:在目录上进行非法操作,请断开“/home/malvadao/workspace/project/.build/node_modules”的链接

被扔了出去。

删除.build文件夹对我来说就是这样。它是Typescript编译后生成的文件夹。由于文件夹是在启动无服务器部署命令后重新创建的,因此它足以解决问题并继续流程。

换句话说,手动删除文件夹可能足以让您继续前进,而不需要触摸.npmrc