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

Posted

技术标签:

【中文标题】切换到 pnpm 时可以删除 package-lock.json 吗?【英文标题】:Can I delete package-lock.json when switching to pnpm? 【发布时间】:2020-01-11 06:41:02 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

如果你使用 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.

【讨论】:

以上是关于切换到 pnpm 时可以删除 package-lock.json 吗?的主要内容,如果未能解决你的问题,请参考以下文章

果断放弃npm切换到pnpm--节约磁盘空间(256G硬盘救星)

果断放弃npm切换到pnpm--节约磁盘空间(256G硬盘救星)

为什么 Vue 源码以及生态仓库要迁移 pnpm?

pnpm的基本原理及快速使用

Docker前端工程npm平滑过渡到pnpm v7的姿势

Docker前端工程npm平滑过渡到pnpm v7的姿势