node.js - Yarn 每次都会擦除我的 node_modules 文件夹
问题描述
我最近刚刚成功地在我的一个系统上使用 yarn,替换了 npm,用于我的 react-native 项目。使用纱线版本 1.22.11。我运行它,它很好地解决了依赖关系,没有任何问题。
所以我将项目复制到另一台计算机上。我想做同样的事情——使用纱线——但是当我运行“纱线”命令时,而不是通过我的目录并修复我的依赖项......
...yarn 遍历我的目录,不仅删除文件,还删除文件夹!这是纱线版本 2.4.1。
有人对为什么会发生这种情况有想法吗?
解决方案
yarn 2 默认不使用或创建 node_modules 目录,而是使用一种称为即插即用(pnp)的新技术。如果您从 yarn 1.x 升级到 yarn 2.x,它将删除 node_modules 文件夹。
有关纱线 2 和 pnp 的入门知识,请参阅https://dev.to/arcanis/introducing-yarn-2-4eh1和https://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 生态系统中的许多包是不兼容的。
推荐阅读
- php - 使用 composer 安装 Codeigniter 和 Bootstrap
- javascript - 使用 AJAX 和 PHP 登录时获取用户配置文件
- pandas - 对 pandas 数据框进行上采样给出警告
- r - 如何在 R 中添加带有区域和 iso(用于映射)的新列?
- java - 在从二进制文件读取时,在 16 位图像中给出 256 的偏移量是什么意思?
- python - 从文件夹中读取 JSON 文件并将它们保存为列表中的 numpy 数组
- typo3 - TYPO3 QueryBuilder - 如何查找用户的最新记录?
- python - 如何加快我的 Python 扑克手与手牌赢率计算器
- node.js - Reactstrap 改变活动的 NavLink onClick
- php - Woocommerce 如何在简短描述之前移动产品标签