纱线形成纱线。执行yarn安装后锁定文件。
这应该提交到存储库还是忽略?这是干什么用的?
纱线形成纱线。执行yarn安装后锁定文件。
这应该提交到存储库还是忽略?这是干什么用的?
当前回答
根据我的经验,我会说,是的,我们应该做纱线。锁文件。这将确保,当其他人使用您的项目时,他们将获得与您的项目预期相同的依赖项。
来自医生
当您运行纱线或纱线添加时,yarn将生成一个纱线。在包的根目录中锁定文件。您不需要阅读或理解此文件—只需将其签入源代码控制。当其他人开始使用Yarn而不是npm时,Yarn。锁文件将确保他们得到完全相同的依赖,因为你有。
一种说法是,我们可以通过用——替换^来实现。是的,我们可以,但一般来说,我们已经看到大多数npm包都带有^符号,我们必须手动更改符号以确保静态依赖版本。但如果你用纱线。锁定它将以编程方式确保您的版本正确。
正如埃里克·艾略特所说
不要。gitignore yarn.lock。它的存在是为了确保确定性依赖项解析,以避免“在我的机器上工作”的错误。
其他回答
根据我的经验,我会说,是的,我们应该做纱线。锁文件。这将确保,当其他人使用您的项目时,他们将获得与您的项目预期相同的依赖项。
来自医生
当您运行纱线或纱线添加时,yarn将生成一个纱线。在包的根目录中锁定文件。您不需要阅读或理解此文件—只需将其签入源代码控制。当其他人开始使用Yarn而不是npm时,Yarn。锁文件将确保他们得到完全相同的依赖,因为你有。
一种说法是,我们可以通过用——替换^来实现。是的,我们可以,但一般来说,我们已经看到大多数npm包都带有^符号,我们必须手动更改符号以确保静态依赖版本。但如果你用纱线。锁定它将以编程方式确保您的版本正确。
正如埃里克·艾略特所说
不要。gitignore yarn.lock。它的存在是为了确保确定性依赖项解析,以避免“在我的机器上工作”的错误。
是的,你应该承诺。了解更多关于纱线的知识。锁定文件,参考这里的官方文档
取决于你的项目是什么:
你的项目是一个应用程序吗?然后:是的 你的项目是图书馆吗?如果有:没有
更详细的描述可以在这个GitHub问题中找到Yarn的创建者之一。说:
包。Json描述了原作者所期望的版本,而yarn。Lock描述给定应用程序的最后一个已知良好配置。
只有纱线。将使用顶级项目的锁文件。因此,除非一个项目将被单独使用,而不是安装到另一个项目中,否则提交任何yarn都是没有用的。锁定文件-相反,它将始终取决于包。json文件来传达项目期望的依赖项的版本。
我想是的,因为Yarn会自己制作纱线。锁文件: https://github.com/yarnpkg/yarn
它用于确定包依赖项解析。
你应该:
将其添加到存储库并提交 在本地和CI构建服务器上使用yarn install——frozen-lockfile和NOT yarn install作为默认值。
(我在yarn的问题跟踪器上打开了一个ticket,以使freeze -lockfile默认行为,参见#4147)。
注意不要在.yarnrc文件中设置freeze -lockfile标志,因为这会阻止你同步这个包。Json和yarn。锁文件。参见github上的相关纱线问题
纱线安装可能会使你的纱线发生变异。出乎意料地锁定,使可重复构建的纱线声明无效。你应该只使用yarn install来初始化yarn。锁定并更新它。
此外,特别是在较大的团队中,您可能会因为开发人员正在设置他们的本地项目而对yarn锁的更改产生很多噪音。
要了解更多信息,请阅读我对npm的package-lock的回答。Json在这里也适用。
最近在yarn安装的文档中也明确了这一点:
yarn install Install all the dependencies listed within package.json in the local node_modules folder. The yarn.lock file is utilized as follows: If yarn.lock is present and is enough to satisfy all the dependencies listed in package.json, the exact versions recorded in yarn.lock are installed, and yarn.lock will be unchanged. Yarn will not check for newer versions. If yarn.lock is absent, or is not enough to satisfy all the dependencies listed in package.json (for example, if you manually add a dependency to package.json), Yarn looks for the newest versions available that satisfy the constraints in package.json. The results are written to yarn.lock. If you want to ensure yarn.lock is not updated, use --frozen-lockfile.