可以使用 pnpm 只使用一个包版本吗?
Possible to use only one package version using pnpm?
我需要使用 apollo-server
和 graphql-upload
来处理文件上传。这与旧的 graphql-upload v9 的预期一样有效。更新到最新的 v11 会导致上传失败。简而言之,问题是 apollo-server
(和 @nestjs/graphql
)依赖于旧的 graphql-upload
v8。 (For those, who are interested in more) 为了使一切正常,我的项目中应该只有一个版本 (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 overrides。在您的情况下,您可以将其添加到 package.json
:
{
"pnpm": {
"overrides": {
"graphql-upload": "11"
}
}
}
添加或更改这些覆盖后,只需 运行 pnpm install
和 pnpm 将相应地更新您的 node_modules。
我需要使用 apollo-server
和 graphql-upload
来处理文件上传。这与旧的 graphql-upload v9 的预期一样有效。更新到最新的 v11 会导致上传失败。简而言之,问题是 apollo-server
(和 @nestjs/graphql
)依赖于旧的 graphql-upload
v8。 (For those, who are interested in more) 为了使一切正常,我的项目中应该只有一个版本 (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 overrides。在您的情况下,您可以将其添加到 package.json
:
{
"pnpm": {
"overrides": {
"graphql-upload": "11"
}
}
}
添加或更改这些覆盖后,只需 运行 pnpm install
和 pnpm 将相应地更新您的 node_modules。