无论我在什么目录下,无论我在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!


当前回答

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

其他回答

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

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

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

被扔了出去。

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

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

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

检查确保你在正确的目录下运行npm install。

(包。Json文件可以是一个额外的目录下,例如。)

EISDIR代表“错误,是目录”。这意味着NPM试图对一个文件做一些事情,但它是一个目录。在你的例子中,NPM试图“读取”一个目录文件(行:4)。由于操作不能完成,错误被抛出。

这里有三件事要确定。

确保文件存在。如果没有,则需要创建它。(如果NPM依赖于文件中的任何特定信息,你将需要在那里有这些信息)。 确保它实际上是一个文件,而不是一个目录。 它具有正确的权限。可以使用“sudo chmod 777 FILE_NAME”将文件修改为拥有所有权限。(注意:你给了读,写和执行权限的文件上的每个人)

这些奇怪的错误最近发生在我的OSX机器上。

我可以用快速而肮脏的方式来帮助自己:

sudo chmod -R 777 /usr/local/lib/node_modules/

似乎有什么东西打乱了所有全局节点模块的访问权限。