【问题标题】:yarn "Error: EISDIR: illegal operation on a directory, read"纱线“错误:EISDIR:对目录的非法操作,读取”
【发布时间】:2021-02-19 15:29:02
【问题描述】:

突然纱线不工作了。 npm 运行良好,但 yarn 只能运行 yarn -v,任何其他命令(例如 yarn、yarn test 或 yarn watch)都会显示此错误

Arguments: 
  /home/my.user/.nvm/versions/node/v14.15.4/bin/node /home/my.user/.nvm/versions/node/v14.15.4/bin/yarn

PATH: 
  /home/my.user/.nvm/versions/node/v14.15.4/bin:/home/my.user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Yarn version: 
  1.22.10

Node version: 
  14.15.4

Platform: 
  linux x64

Trace: 
  Error: EISDIR: illegal operation on a directory, read

npm manifest: 
  {
    "name": "one",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
      "test": "echo 'hello'"
    },
    "keywords": [],
    "author": "",
    "license": "ISC"
  }

yarn manifest: 
  No manifest

Lockfile: 
  No lockfile

【问题讨论】:

    标签: node.js yarnpkg yarn-workspaces yarn-lock.json


    【解决方案1】:

    在我的情况下,删除yarn.lock文件后,我可以正常安装依赖项

    【讨论】:

      【解决方案2】:

      EISDIR 代表“错误,是目录”。这意味着 yarn 正在尝试对文件执行某些操作,但它是一个目录。在您的情况下,yarn 试图“读取”作为目录的文件(第 4 行)。由于无法完成操作,因此会引发错误。

      这里有三件事要确保。

      确保文件存在。如果没有,您需要创建它。 (如果 yarn 依赖于文件中的任何特定信息,则您需要在其中拥有该信息)。

      确保它实际上是一个文件而不是一个目录。 它具有正确的权限。您可以更改文件以拥有所有权限

      sudo chmod 777 FILE_NAME
      

      (小心:您正在为该文件上的每个人授予读取、写入和执行权限)

      【讨论】:

      • 我们在这里讨论的是哪个文件?我只是想用 yarn 运行一个 npm 脚本。例如纱线手表。我应该查看哪个文件?包.json?一根纱线二进制¿?
      • 检查你的项目目录权限
      • 这似乎不起作用。我检查了权限,似乎它与纱线本身有关。我什至不能运行yarn --help 因为我得到了同样的错误
      【解决方案3】:

      看起来 yarn 正在寻找 .npmrc 文件。但是,它会找到一个同名的目录,然后在尝试读取它时输出错误。删除目录将删除错误。这就是 .npmrc 删除背后的概念。

      【讨论】:

      • 不错的发现!这可能是因为 nvm-windows 的安装指南声称应该将 npmrc 文件迁移到 %userprofile%/.npmrc/.npmrc
      【解决方案4】:

      尝试查找并删除位于

      的.npmrc

      窗户: C:/users/<your username>/.npmrc

      Ubuntu: /home/<your username>/.npmrc

      【讨论】:

      • 仅删除 .npmrc 不会消除错误。删除.npmrc背后的概念是什么?
      • 可能与 The Cowacorn 的提示有关:删除名为 `%userprofile%/.npmrc 的 文件夹 即可解决问题
      猜你喜欢
      • 2021-07-13
      • 2020-07-25
      • 2021-06-20
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多