首页 > 解决方案 > 可以使用 pnpm 仅使用一个包版本吗?

问题描述

我需要使用apollo-servergraphql-upload处理文件上传。这与旧的 graphql-upload v9 按预期工作。更新到最新的 v11 会导致上传失败。简而言之,问题在于apollo-server(和@nestjs/graphql)取决于旧的graphql-uploadv8。(对于那些对更多感兴趣的人)为了让一切正常工作,我的项目中应该只有一个版本(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

标签: npmgraphqldependenciesapollo-serverpnpm

解决方案


您可以使用pnpm 覆盖。在您的情况下,您可以将其添加到您的package.json

{
  "pnpm": {
    "overrides": {
      "graphql-upload": "11"
    }
  }
}

添加或更改这些覆盖后,只需运行pnpm install,pnpm 将相应地更新您的 node_modules。


推荐阅读