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


当前回答

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

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

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

被扔了出去。

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

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

其他回答

我使用的是Laravel v8.56.0的Mix v6.0.29

在webpack.mix.js中,当复制目录时使用

mix.copyDirectory(“resources/js”, “public/js”);

检查内部文件夹,它不应该包含点/s(.),否则,这个错误将弹出。

我认为对于这个特定的版本,路径(或文件夹)与点/s后面跟着一些字符,将类似于文件扩展名,然后将被视为“文件”,不管它是否是“文件夹”。

这发生在我使用npm publish -access public命令时。项目包含名为package.json的目录。这个错误是可悲的-因为项目必须有这个目录和命名确切的包。Json(它是测试用例fixture的一部分,用于断言这个库的正确行为)。

在我的例子中,“错误:EISDIR:对目录的非法操作,已读”问题在于我所在的文件夹的名称。似乎,在windows系统上使用特殊字符(在我的例子中是#)也会导致这个错误。

在我的mac升级之后。我开始有这个问题。我尝试重新安装nvm, node, npm,清除npm缓存,删除node_modules文件夹后重新安装项目的依赖项,重置npmrc…

唯一有效的方法是再次克隆项目,并且从相同的分支和相同的提交中工作。

在我的情况下,我忘记传递它所要求的一个文件的完整路径。在传递文件的完整路径后工作:)