遇到^(脱字符)时,纱线如何工作?

Ale*_*der 6 javascript yarnpkg

yarn在package.json依赖项中遇到^(脱字符)时如何工作?

假设我有一个反应:^ 16.0.0,当我安装纱线时,它将在该版本(16.0.0)上创建一个锁。

现在某个时候以后,当react 16.1.0发布时,我又重新安装了带有锁定文件的yarn,将yarn升级到该版本,还是遵循16.0.0的锁定文件中的内容?

谢谢。

小智 8

所选答案是错误的。

插入符号表示以下

^3.1.4 将允许版本范围 >=3.1.4 <4.0.0

  • @dube问题是yarn如何处理`^`,而不是锁文件的作用 (4认同)
  • @dube 不,问题是“当纱线遇到^(插入符号)时,纱线如何工作?” (3认同)
  • 我们同意第一个答案可能包括范围,但这并没有错,并且包括重要的上下文,这也需要知道 - 特别是菜鸟。然而,第二个声称第一个是错误的(事实并非如此)并粘贴了一个没有任何内容的范围。我会认为质量很低。最后,我可能来到这里是因为我想知道它是如何工作的(标题)而不是插入符的含义。谷歌向我展示了一个不同的问题“纱线中的插入符号意味着什么”。如果你认为这是一个问题,人们可以交叉链接这个问题 (2认同)

Kay*_*der 5

yarn install将在锁定文件中安装确切的版本。这是一个锁文件的巨大好处,无论您何时安装多头纱,从事项目工作的每个人都会获得与软件包完全相同的版本。(例如,我今天在16.0.0是当前版本时进行yarn安装,但是您明天在16.1.0是当前版本时进行yarn安装。我们仍然都会得到16.0.0,因为这就是我们的锁文件所说的,我们应该我们的开发环境是完全相同的,这正是我们想要的。同样,如果我们在两周内以16.2.0为当前版本进行部署,则将部署16.0.0;因此,我们的开发环境和产品环境也完全相同)

如果发布了16.1.0,并且要更新项目以使用它,请使用yarn upgrade。请注意,您可以升级所有软件包,也可以仅升级一个特定的软件包,也可以升级到软件包的最新版本或特定版本的软件包。https://yarnpkg.com/lang/zh-CN/docs/cli/upgrade/

版本控制您的package.json和yarn.lock

通过将这两个文件添加到版本控制中,您可以轻松地将项目恢复到与包有关的特定时间点。