yarn.lock文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yarn.lock文件相关的知识,希望对你有一定的参考价值。

参考技术A 为了在多台机器之间获得一致的安装结果,Yarn 可能会需要比 package.json 文件中配置的依赖项更多的信息。它需要准确存储每一个依赖项的安装版本。因此在 Yarn 项目的根目录我们需要一个 yarn.lock 文件,这个 yarn.lock 文件是自动生成的。

当我们执行 yarn 命令或者添加依赖包命令后,Yarn 都会在项目根目录下自动生成一个 yarn.lock 文件。在使用 Yarn 安装、升级、删除依赖项目时,会自动更新到 yarn.lock 文件中。一般我们不会去手动编辑这个文件,因为很容易破坏这个文件。

例如我们安装了一些依赖包,那么 yarn.lock 文件内容类似所示格式:

可以明显看到 yarn.lock 文件中的信息比 package.json 文件中详细了很多。

在实际项目中, yarn.lock 文件也很有用处,我们可以将 yarn.lock 提交到版本库中,其他成员就可以通过 yarn install 获取所有依赖包,这个可以保证大家安装的依赖是完全一致的,避免产生 bug 。

为啥我的项目同时有 package-lock.json 和 yarn.lock 文件?

【中文标题】为啥我的项目同时有 package-lock.json 和 yarn.lock 文件?【英文标题】:Why does my project have both a package-lock.json and yarn.lock file?为什么我的项目同时有 package-lock.json 和 yarn.lock 文件? 【发布时间】:2021-06-10 22:14:25 【问题描述】:

我正在做一个 React 项目。

我只在项目中使用了npm。我不确定 yarn.lock 文件最初是如何生成的。因为我没有使用yarn,所以删除yarn.lock可以吗?

当我运行npm install <package> 安装包时,yarn.lock 更新但package-lock.json 保持不变,这是为什么呢?

我需要package-lock.jsonyarn.lock 文件吗?

【问题讨论】:

您是否曾经将 npm 别名为 yarn 之类的?是否有多人参与这个项目? 我是唯一一个从事这个项目的人。我不知道如何给npm 起别名,所以我假设不是。 当你在终端上写 $ npm 你看到 Usage: npm 了吗?如果你看到这个,npm 没有别名。 我终端的输出是Usage: npm <command>,所以没有别名。谢谢 【参考方案1】:

通常,当你使用 npm 时,你会看到一个 package.json 和一个 package-lock.json 文件。

当你使用 yarn 时,你会看到一个package.json 和一个yarn.lock 文件。

我建议先将你的功能项目push到git,然后将项目克隆到具有相同内容的新存储库并做一些测试:

    删除node_modulesyarn.lockpackage-lock.json npm install

你不应该再看到yarn.lock了。

【讨论】:

未创建 yarn.lock 文件。我现在只有一个package-lock.json,在我的开发环境中一切似乎都运行良好。谢谢

以上是关于yarn.lock文件的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的项目同时有 package-lock.json 和 yarn.lock 文件?

Yarn:将 JavaScript 依赖项重新部署到生产服务器的过程(使用 `yarn.lock` 文件)

我应该提交 yarn.lock 和 package-lock.json 文件吗?

为啥我的 yarn.lock 文件中有僵尸包?

package.json、package-lock.json 和 yarn.lock 文件的区别?

如何解决 yarn.lock 中的 git 冲突