javascript - 我是要提交 yarn 的 .pnp.js 文件吗?
问题描述
Yarn 包含一个可选的“Plug'n'Play”功能,它可以node_modules
移出项目目录。这样做时,它会创建一个.pnp.js
文件,其中包含对硬盘驱动器上各种依赖路径的引用。
该文件是自动生成的,有几千行长,并且似乎引用了特定于运行yarn install
.
是否.pnp.js
意味着与其余代码一起提交?尽管该文件似乎无法提交,但我似乎找不到任何有关此的信息。什么是公认的最佳实践,为什么?
解决方案
我发现了 Arcanis(Yarn 的主要维护者)在一个问题上的评论,询问在.gitignore
. 它可能会回答你的问题:
.yarn/plugins
并.yarn/releases
包含当前存储库中使用的 Yarn 版本(由 定义yarn set version
)。您将希望保持它们的版本化(这可以防止潜在的问题,例如,如果两个工程师使用具有不同功能的不同 Yarn 版本)。
.yarn/unplugged
应该总是被忽略,因为它可能包含原生构建
.yarn/build-state.yml
也应该被忽略,因为它包含构建信息
- 如果由于某种原因您版本,保留也
unplugged
可能是有意义的build-state
.yarn/cache
可能会被忽略,但您需要运行yarn install
才能重新生成它
- 对其进行版本控制可以解锁我们所说的零安装——不过,它是可选的
.pnp.js
(并且可能.pnp.data.json
)与缓存在同一条船上。如果您将缓存保存在存储库中,请将其添加到存储库中,否则忽略它。
yarn.lock
应该始终存储在您的存储库中(即使您开发了一个库)所以总结一下:
如果您使用零安装:
.yarn/unplugged .yarn/build-state.yml
如果您不使用零安装:
.yarn/* !.yarn/releases !.yarn/plugins .pnp.*
推荐阅读
- android - java.lang.RuntimeException:画布:试图绘制太大(125440000字节)位图
- javascript - How to control execution of 2 blocks of code?
- python - Django ORM Group BY 并返回附加字段
- mysql - PDO 准备好的语句绑定
- java - 在 Spring Boot 中将 Apache Mahout 与 ElasticSearch 集成
- php - 从 prestashop 中的当前购物车恢复产品
- math - 如何“调整”数据集以使总和等于 1。(我以为我知道正确的术语)
- c# - 面板刷新时使鼠标光标保持不变
- node.js - SSL:CERTIFICATE_VERIFY_FAILED 证书验证失败 (_ssl.c:661)
- django - Django Rest Framework过滤器使用外键