突然纱线不工作了。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
在我的情况下,删除yarn.lock
文件后,我可以正常安装依赖
EISDIR代表" Error, Is directory "。这意味着yarn正在尝试对一个文件做一些事情,但它是一个目录。在你的情况下,纱线正试图"读取"。一个文件,它是一个目录(行:4).由于该操作不能完成,因此抛出错误。
这里有三件事要确定。
确保文件存在。如果没有,则需要创建它。(如果yarn依赖于文件中的任何特定信息,则需要在文件中包含该信息)。
确保它实际上是一个文件而不是一个目录。它具有正确的权限。您可以将文件更改为具有
的所有权限。sudo chmod 777 FILE_NAME
(注意:您正在给该文件上的每个人提供读,写和执行权限)
似乎纱线正在寻找一个.npmrc文件。但是,它会找到一个具有相同名称的目录,然后在试图读取该目录时输出错误。删除目录将删除错误。这就是.npmrc背后的概念删除。
尝试查找并删除.npmrc,它位于
窗口:C:/users/<your username>/.npmrc
Ubuntu:/home/<your username>/.npmrc