npm:未处理的拒绝错误:EISDIR:目录上的非法操作,打开‘/Users/me/.npm/_cacache/content-v2/sha512/b3/da’;

npm:未处理的拒绝错误:EISDIR:目录上的非法操作,打开‘/Users/me/.npm/_cacache/content-v2/sha512/b3/da’;,npm,Npm,在我的Mac电脑上,我刚刚将我的npm工作版本从5.6升级到6.9: sudo npm i -g npm 然后我试着像这样安装cordova: sudo npm install -g cordova npm WARN tar EISDIR: illegal operation on a directory, open '/tmp/npm-30934-a3ac319a/unpack-28da209e/bin/node-gyp-bin' Unhandled rejection Error: EI

在我的Mac电脑上,我刚刚将我的npm工作版本从5.6升级到6.9:

sudo npm i -g npm
然后我试着像这样安装cordova:

sudo npm install -g cordova
npm WARN tar EISDIR: illegal operation on a directory, open '/tmp/npm-30934-a3ac319a/unpack-28da209e/bin/node-gyp-bin'
Unhandled rejection Error: EISDIR: illegal operation on a directory, open '/Users/me/.npm/_cacache/content-v2/sha512/99/72'
得到

Unhandled rejection Error: EISDIR: illegal operation on a directory, 
open '/Users/me/.npm/_cacache/content-v2/sha512/04/89'
npm ERR! cb() never called!

npm ERR! This is an error with npm itself. Please report this error at:
npm ERR!     <https://npm.community>

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/me/.npm/_logs/2019-04-02T11_50_57_678Z-debug.log
但这在数百行这样的代码中失败了:

sudo npm install -g cordova
npm WARN tar EISDIR: illegal operation on a directory, open '/tmp/npm-30934-a3ac319a/unpack-28da209e/bin/node-gyp-bin'
Unhandled rejection Error: EISDIR: illegal operation on a directory, open '/Users/me/.npm/_cacache/content-v2/sha512/99/72'
我还尝试确保所有权是正确的:

sudo chown -R $(whoami) ~/.npm
对于其他目录(如/usr/lib/modules),有很多关于各种EISDIR(错误是一个目录)问题的帖子,但似乎没有解决方案

此外,npmrc文件似乎不存在。如果我这样做:

npm config ls -l

globalconfig = "/usr/local/etc/npmrc"
userconfig = "/Users/me/.npmrc"
但两个文件都不存在

注意,我没有自制软件,也没有那样安装(我通常手动安装)

我也试过:

sudo npm cache clean -f
这没有帮助

我还能试什么?我应该尝试删除~/.npm目录吗

在寻找卸载node的方法时,我发现许多旧帖子都有很长的文件列表,有时会有冲突,需要删除。不确定这是否会让事情变得更糟


有什么建议吗?

我想我已经找到了解决办法。我做了以下工作:

  • Mac pkg安装程序中已安装的节点从该版本将npm降级为6.4.1,这是EISDIR问题开始之前的版本
  • chmod-R 777~/.npm/_cacache//是的,这不好
  • chown-R me~/.npm/_cacache

  • 在此之后,我可以使用“sudo npm install-g cordova”安装cordova,没有错误。

    升级到npm 6.9.0时,我也遇到了同样的问题。您必须将节点升级到最新版本:

    brew重新安装节点

    目前,我已经安装了Mac OS Mojave的最新可用版本(节点:v11.14.0和npm 6.9.0)


    节点升级后,我可以再次全局安装包。

    更改文件的所有权,然后避免使用sudo是EISDIR使用sudo进行全局安装的一个可能的解决方法。我想您已安装到默认位置文件夹:

    sudo chown -R <user> ~/.npm
    
    sudo chown -R <user> /usr/local/lib
    
    sudo chown -R <user> /usr/local/bin
    
    sudo chown-R~/.npm
    sudo chown-R/usr/local/lib
    sudo chown-R/usr/local/bin
    

    在这个序列之后,它对我起了作用。

    nvm安装节点
    为我修复了它(从6.9.0降级到6.7.0)。谢谢你,这是为我做的——我遵循了这么多答案,但这一个是为我做的!