为了账号安全,请及时绑定邮箱和手机立即绑定

我是要提交 yarn 的 `.pnp.js` 文件吗?

我是要提交 yarn 的 `.pnp.js` 文件吗?

猛跑小猪 2021-12-02 19:24:58
Yarn 包括一个可选的“即插即用”功能,该功能移出node_modules项目目录。这样做时,它会创建一个.pnp.js文件,其中包含对硬盘驱动器上各种依赖路径的引用。该文件是自动生成的,有几千行长,并且似乎引用了特定于运行yarn install.是否.pnp.js意味着与其余代码一起提交?尽管该文件似乎无用,但我似乎无法找到有关此的任何信息。什么是最佳实践,为什么?
查看完整描述

2 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

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


查看完整回答
反对 回复 2021-12-02
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

正如其中一位评论者所指出的,官方 .gitignore 建议以及出色的评论都在这里。我唯一的批评是他们在那里展示的方式,我认为他们应该将常见的方式合二为一,然后将零安装与不安装的特殊情况分开。这就是我如何拥有它。但同样,请注意该文章,因为其中一些(例如.yarn/sdk)可以选择添加或不添加。


# ------- yarn -------

# see excellent notes at: https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored

# Also: `yarn.lock` and `.yarnrc.yml` (or it's older counterpart .yarnrc) "should always be stored in your repo"

.yarn/*

!.yarn/patches

!.yarn/plugins

!.yarn/releases

!.yarn/sdks

!.yarn/versions


## --> ADD if using zero-install, otherwise do NOT:

#!.yarn/cache


## --> ELSE ADD if NOT using yarn's zero-install:

.pnp.*


# ------- end yarn -------


查看完整回答
反对 回复 2021-12-02
  • 2 回答
  • 0 关注
  • 221 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信