首页 > 解决方案 > 我是要提交 yarn 的 .pnp.js 文件吗?

问题描述

Yarn 包含一个可选的“Plug'n'Play”功能,它可以node_modules移出项目目录。这样做时,它会创建一个.pnp.js文件,其中包含对硬盘驱动器上各种依赖路径的引用。

该文件是自动生成的,有几千行长,并且似乎引用了特定于运行yarn install.

是否.pnp.js意味着与其余代码一起提交?尽管该文件似乎无法提交,但我似乎找不到任何有关此的信息。什么是公认的最佳实践,为什么?

标签: javascriptnode.jsgityarnpkg

解决方案


我发现了 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.*

推荐阅读