首页 > 解决方案 > 忽略 package-lock.json 中的某些包

问题描述

我有一个难题,似乎找不到正确的解决方案。

我正在从事的当前项目使用 npm 来管理我们的包。我们已经有一段时间没有使用 package-lock.json 了,但需要重新包含它。

问题是,我们有一些通过 npm 安装的自定义包(例如“my-components”),其中包含我们的组件代码等。对于这些包,我们总是希望在执行“npm”时包含最新版本安装”。

我的问题是,有没有办法为 package-lock.json 排除某些包?或者这个问题还有其他解决办法吗?

理想情况下,除了我们的自定义包之外的所有包都将锁定到特定版本,然后我们的自定义包将始终从最新安装。

编辑:澄清一下,我遇到的主要问题是为了开发,我们没有提取自定义包的特定版本。我们只是拉动#dev 分支上发生的任何事情。对于特定版本,我们有一个版本号,但我们在那里很好。我们希望能够让我们的自定义包说“每当运行 npm install 时,总是拉取 dev 分支上发生的任何事情”,但我们希望所有其他包都锁定到特定版本。

标签: javascriptnpmpackage.jsonpackage-lock.json

解决方案


如果仅用于开发,您可以使用npm link. 它基本上会创建一个指向另一个包的符号链接,您可以从它自己的文件夹中保持更新。

例如,如果您有两个包,my-components并且main-project,my-components的依赖项在哪里main-project,我们假设目录中都有~/projects

~/projects/my-components源文件夹中,运行npm link.

然后从~/projects/main-project运行npm link my-components

您现在可以并行开发这两个项目。


推荐阅读