使用纱线包管理器的错误

Posted

技术标签:

【中文标题】使用纱线包管理器的错误【英文标题】:Errors using yarn Package Manager 【发布时间】:2020-10-28 05:55:21 【问题描述】:

我一直在使用 npm 在每个命令之前使用 sudo 安装软件包。考虑到这是一种不好的做法,我安装了 yarn 来管理我的包。安装yarn并运行包安装后,我收到以下错误:

信息未找到锁定文件。

我应该手动创建这个文件,还是应该由 yarn 自己创建一个?

警告 package-lock.json 找到。您的项目包含由 Yarn 以外的工具生成的锁定文件。建议不要混用包管理器,以免锁文件不同步导致解析不一致。要清除此警告,请删除 package-lock.json。

如果我清除 package-lock.json 文件,npm 将不再找到这些包。我是否需要卸载最初使用 npm 安装的所有软件包,如果我希望将来专门使用 yarn,是否需要重新安装所有内容?有很多包。

error 发生意外错误:“EACCES: permission denied, mkdir '/home/username/node_modules/cacheable-request'”。

我想这个错误是由于我最初安装了具有 sudo 权限的节点。如何解决此权限问题?

【问题讨论】:

【参考方案1】:

假设您使用的是 Linux(因为 sudo 命令)。

信息未找到锁定文件。

yarn 第一次成功安装依赖时,它会创建文件。

警告 package-lock.json 发现

Just a Warning 不建议同时使用 yarn 和 NPM 但不是问题。

错误发生意外错误:“EACCES:权限被拒绝

你应该是 /home//node_modules 的所有者来检查这个运行这个命令 ls -l ~/node_modules 如果所有者是 root (因为使用 sudo npm)你可以改变你再次运行 sudo chown -R $USER ~/node_modules 然后你应该能够再次运行yarn 来安装所有依赖项。

【讨论】:

太棒了!非常感谢 Yoandry 的时间和回答。这确实解决了这个问题。如果可以的话,再问一个问题。由于之前所有的包都是使用 npm 安装的,而且我将来会使用 yarn,有没有办法以某种方式将 yarn 与 npm 创建的 package-lock.json 文件中的包同步? 如果你使用的是精确版本,这意味着 ... , "anypackage": "1.2.3" ,然后使用yarnnpm 你会得到相同的结果。请将答案标记为正确。 再次感谢 Yoandry。标记!

以上是关于使用纱线包管理器的错误的主要内容,如果未能解决你的问题,请参考以下文章

使用纱线资源管理器的困惑

前端包管理器的依赖管理原理

我想知道(公式)如何计算名称节点、纱线和资源管理器的 RAM、CPU 和磁盘内存

composer 包管理器的安装和使用

Visual Studio 2013 更新 NuGet 包管理器

添加对 Swift 包管理器的支持无法正确构建