切换到 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硬盘救星)