我可以在切换到 pnpm 时删除 package-lock.json 吗?

Can I delete package-lock.json when switching to pnpm?

我正在从 npm 切换到 pnpm,它具有我喜欢的一组不同的功能。

前者使用 package-lock.json 锁定确切的包版本,后者 pnpm-lock.yaml.

根据 docspnpm 忽略 package-lock.json,这似乎变得多余。因此,当使用 pnpm 更新包时,此文件将根本不会被处理,并且很快就会过时。

我可以安全地删除 package-lock.json 还是会遇到一些问题?从我的项目中删除这个文件会有什么缺点吗?

我使用 npm 只是为了获取我的项目所需的工具和包(即 Gulp),而不是将包发布到 https://www.npmjs.com/

如果您使用 pnpm,则可以删除 package-lock.json(如果您从 Yarn 切换,则可以删除 yarn.lock)。如果您需要保留旧锁定文件中的一些依赖项,您可以 运行 pnpm import 并且 pnpm 将使用来自 package-lock.json.

的信息生成一个锁定文件

pnpm 将创建自己的锁定文件。 pnpm 的锁定文件称为 pnpm-lock.yaml。您应该将此文件提交到存储库。

如果您有 CI 服务器,则还必须在 CI 服务器上使用 pnpm 来安装依赖项。 Here are some instructions how to do that.