首页 > 解决方案 > Yarn 每次都会擦除我的 node_modules 文件夹

问题描述

我最近刚刚成功地在我的一个系统上使用 yarn,替换了 npm,用于我的 react-native 项目。使用纱线版本 1.22.11。我运行它,它很好地解决了依赖关系,没有任何问题。

所以我将项目复制到另一台计算机上。我想做同样的事情——使用纱线——但是当我运行“纱线”命令时,而不是通过我的目录并修复我的依赖项......

...yarn 遍历我的目录,不仅删除文件,还删除文件夹!这是纱线版本 2.4.1。

有人对为什么会发生这种情况有想法吗?

标签: node.jsnpmnode-modulesyarnpkg

解决方案


yarn 2 默认不使用或创建 node_modules 目录,而是使用一种称为即插即用(pnp)的新技术。如果您从 yarn 1.x 升级到 yarn 2.x,它将删除 node_modules 文件夹。

有关纱线 2 和 pnp 的入门知识,请参阅https://dev.to/arcanis/introducing-yarn-2-4eh1https://yarnpkg.com/features/pnp

如果要关闭 yarn 2 中的 pnp 并使用 node_modules,请参见:如何关闭 yarn@2 PnP?

但大多数社区都坚持使用 yarn 1.x。见https://blog.hao.dev/state-of-yarn-2-berry-in-2021

您可能决定坚持使用 yarn 1.x,返回 npm,或者尝试使用或不使用 pnp 的 yarn 2.x berry。一般来说,如果您的项目可以使用 pnp,它会快得多。但是,javascript 生态系统中的许多包是不兼容的。


推荐阅读