【问题标题】:Should you commit .nvmrc to GIT in your NODE projects?您是否应该在您的 NODE 项目中将 .nvmrc 提交给 GIT?
【发布时间】:2020-10-07 17:12:51
【问题描述】:

作为一名开发人员,我希望拥有多个可以使用不同版本的 NODE js 的项目。 此外,当我从 GIT 存储库中签出新项目时,理想情况下我只想运行一个命令,所有事情都会自动化。

鉴于该文件 .nvmrc 允许自动切换每个目录的 NODE 版本。鉴于我的项目是建立在特定版本的 NODE 之上的,并且可能无法在任何其他版本中运行。

我应该把它提交给 GIT 吗?

这可能是基于意见的问题,但我真的在问这样做的缺点。 有什么风险吗?

--

背景:

这就像我开始在新公司工作后的第一次提交。我的前同事拒绝了那个 PR(之前没有辩论),当我问起时,他告诉我使用正确的版本是开发人员的责任。

好吧,我将.nvmrc 添加到.gitignore 并使用它。否则我每次在终端打开一个新窗口时都需要输入nvm use xx

【问题讨论】:

  • 不回答你的问题,但有点像related
  • 如果你们都在一个项目上合作,那么你们都应该在同一个版本上工作,如果版本需要更新,那么指定该版本的文件是一种理想的共享方式。不是由个别开发人员来猜测支持的版本。挑战似乎在于使用哪个包管理器(这确实需要成为团队标准),然后是使用 .nvmrc 还是 .node-version,或者只是像dev.to/kovah/nvmrc-or-node-version-which-one-do-you-prefer-300n 那样简单链接它们

标签: node.js git gitignore nvm


【解决方案1】:

指定运行项目所使用的工具版本本身并没有什么不好(或者就此而言,任何项目特定文件,正如很好地讨论的here),因为:

  • 很清楚您的目标是什么,让您可以在该特定版本中使用这些功能。
  • 方便项目设置。
  • 不想使用它的人可以忽略(在某些情况下)。
  • 不强制任何人使用它(例如.nvmrc)。

很多人和许多node 项目提交他们的.nvmrc 文件。

我猜你同事的意思是以下之一(只是猜测):

  • 作为程序员,您维护项目及其版本,而不是相反。
  • 项目“不应该知道”您使用的节点版本。
  • 将项目的开发“锁定”到一个版本或不允许它在未来更改和发展版本。

【讨论】:

  • 我愿意相信他的理由这么清楚。然而他完全无法解释自己。
  • 同事有时候就是这样。重要的是,我们至少在遇到这种情况时要清楚。还要注意答案,其他语言的许多其他项目都有提交的项目特定文件(甚至是 IDE 特定文件)。我会假设提交 nvmrc 在“邪恶”规模上相当低
  • 我仍然不知道为什么它应该是邪恶的。
  • 这不是邪恶的,但有些人就是这么认为的。
  • 这些点很清楚,但要回复:1. 其他协作的程序员也需要了解并帮助维护版本,2. 项目包含依赖于节点版本的包依赖项,3. 锁定-in aka version pinning 有利于可重复部署 - 你会从 package.json 中删除版本吗?版本固定不会阻止未来的更改或演变,但可能会引入包兼容性问题或破坏性更改,因此应以受控方式完成和测试
猜你喜欢
  • 2011-08-11
  • 2018-11-13
  • 1970-01-01
  • 2018-12-18
  • 2015-08-12
  • 2023-01-06
  • 2020-09-28
  • 2019-04-11
  • 1970-01-01
相关资源
最近更新 更多