npm - 可以使用 pnpm 仅使用一个包版本吗?
问题描述
我需要使用apollo-server
和graphql-upload
处理文件上传。这与旧的 graphql-upload v9 按预期工作。更新到最新的 v11 会导致上传失败。简而言之,问题在于apollo-server
(和@nestjs/graphql
)取决于旧的graphql-upload
v8。(对于那些对更多感兴趣的人)为了让一切正常工作,我的项目中应该只有一个版本(v11)。
我正在使用pnpm。列出正在使用的软件包,graphql-upload
我得到以下信息:
@nestjs/graphql 7.9.1
├─┬ @apollo/gateway 0.17.0
│ └─┬ apollo-server-core 2.19.0
│ └── graphql-upload 8.1.0 // <--
├─┬ apollo-server-core 2.16.1
│ └── graphql-upload 8.1.0 // <--
└─┬ apollo-server-testing 2.19.0
└─┬ apollo-server-core 2.19.0
└── graphql-upload 8.1.0 // <--
apollo-server 2.19.0
├─┬ apollo-server-core 2.19.0
│ └── graphql-upload 8.1.0 // <--
└─┬ apollo-server-express 2.19.0
└─┬ apollo-server-core 2.19.0
└── graphql-upload 8.1.0 // <--
graphql-upload 9.0.0 // <-- only working if <v10
解决方案
您可以使用pnpm 覆盖。在您的情况下,您可以将其添加到您的package.json
:
{
"pnpm": {
"overrides": {
"graphql-upload": "11"
}
}
}
添加或更改这些覆盖后,只需运行pnpm install
,pnpm 将相应地更新您的 node_modules。
推荐阅读
- kubernetes - Kubernetes 如何管理元数据以及通过元数据/标签查找对象的时间复杂度是多少?
- prometheus - 在对具有相同值的不同标签的两个指标进行数学运算时,在普罗米修斯查询中使用“label_replace”是否是一个好的解决方案
- javascript - 在电报中发送结果(调查)?
- shell - 在 yaml 中读取文本文件以获取键值对
- arrays - Mongoose 从集合中的数组中删除元素
- google-compute-engine - Compute Engine 虚拟机失去网络连接
- oauth-2.0 - 无法检索与 Azure AD 集成的 OAuth2 应用使用的授权类型
- mysql - SQL 查询仅返回 1 行,连接三个以上表的正确方法是什么?
- php - PHP 甲骨文数据库
- python - 如何分离 odes 系统的解的图