Yarn突发故障:仅yarn -v可用,其他命令报EISDIR错误(npm运行正常)
yarn -v、其他命令报EISDIR错误的问题 我之前也碰到过一模一样的情况!结合你给出的报错细节和环境信息,这个问题大概率是Yarn在读取项目目录或配置文件时出了问题——毕竟你的项目里存在package.json但没有Yarn对应的清单和锁文件,下面是几个亲测有效的解决步骤:
确认当前工作目录
先确保你是在包含package.json的项目根目录下执行命令,用pwd命令查看当前路径,对比package.json所在的文件夹路径,避免进错目录导致Yarn找不到必要文件。重新初始化Yarn配置
在项目根目录执行以下命令,强制根据现有package.json生成Yarn所需的配置文件:yarn init -y这个命令会自动创建
yarn.lock和Yarn的配置文件,不需要手动填写任何信息。清理Yarn缓存
缓存目录损坏也可能导致读取错误,执行缓存清理后再重试命令:yarn cache clean清理完成后,尝试运行
yarn install、yarn test等命令,看是否恢复正常。检查Yarn安装路径权限
你的Yarn安装在NVM管理的Node版本目录下,检查该文件的执行权限:ls -l /home/my.user/.nvm/versions/node/v14.15.4/bin/yarn如果权限不足,执行以下命令赋予执行权限:
chmod +x /home/my.user/.nvm/versions/node/v14.15.4/bin/yarn重新安装Yarn(终极方案)
如果以上步骤都无效,尝试完全卸载并重新安装Yarn:npm uninstall -g yarn npm install -g yarn安装完成后,回到项目目录重新初始化Yarn配置,再测试命令。
补充说明
为什么会出现这个问题?因为Yarn执行除版本查询外的命令时,需要读取项目的Yarn配置或锁文件,而你的项目缺失这些文件,再加上可能的缓存损坏或目录权限问题,就触发了EISDIR: illegal operation on a directory, read错误。而npm直接依赖package.json就能工作,所以不受影响。
内容的提问来源于stack exchange,提问作者Jhonatan

