javascript - 忽略 package-lock.json 中的某些包
问题描述
我有一个难题,似乎找不到正确的解决方案。
我正在从事的当前项目使用 npm 来管理我们的包。我们已经有一段时间没有使用 package-lock.json 了,但需要重新包含它。
问题是,我们有一些通过 npm 安装的自定义包(例如“my-components”),其中包含我们的组件代码等。对于这些包,我们总是希望在执行“npm”时包含最新版本安装”。
我的问题是,有没有办法为 package-lock.json 排除某些包?或者这个问题还有其他解决办法吗?
理想情况下,除了我们的自定义包之外的所有包都将锁定到特定版本,然后我们的自定义包将始终从最新安装。
编辑:澄清一下,我遇到的主要问题是为了开发,我们没有提取自定义包的特定版本。我们只是拉动#dev 分支上发生的任何事情。对于特定版本,我们有一个版本号,但我们在那里很好。我们希望能够让我们的自定义包说“每当运行 npm install 时,总是拉取 dev 分支上发生的任何事情”,但我们希望所有其他包都锁定到特定版本。
解决方案
如果仅用于开发,您可以使用npm link
. 它基本上会创建一个指向另一个包的符号链接,您可以从它自己的文件夹中保持更新。
例如,如果您有两个包,my-components
并且main-project
,my-components
的依赖项在哪里main-project
,我们假设目录中都有~/projects
。
从 ~/projects/my-components
源文件夹中,运行npm link
.
然后从~/projects/main-project
运行npm link my-components
。
您现在可以并行开发这两个项目。