Issue: mcp-oauth 包名冲突导致依赖项目构建失败
问题描述
packages/mcp-oauth 包存在于 Poe monorepo 中,提供 OAuth 功能,但未发布到 npm。npm 上已存在同名包 mcp-oauth@1.0.0(punkpeye 的 MCP SSE proxy),导致依赖该包的项目从 npm 安装了错误的包,构建失败。
根本原因
包名冲突:
依赖链:
opencode-poe-auth@0.0.1 → poe-oauth@0.0.7 → mcp-oauth: "*"
当 poe-oauth 依赖 mcp-oauth: "*" 时,包管理器从 npm 安装了错误的 mcp-oauth@1.0.0,导致构建失败。
影响
受影响项目:
- OpenCode(已集成
opencode-poe-auth 作为内置插件)
- 任何依赖
poe-oauth 或 opencode-poe-auth 的项目
构建错误示例:
error: No matching export in "mcp-oauth/dist/index.js" for import "createLoopbackAuthorizationSession"
error: No matching export in "mcp-oauth/dist/index.js" for import "generateCodeChallenge"
error: No matching export in "mcp-oauth/dist/index.js" for import "generateCodeVerifier"
建议解决方案
方案 1:发布正确的包到 npm(推荐)
- 将
packages/mcp-oauth 发布到 npm
- 版本号建议使用
0.0.1 或更高
- 确保 package.json 中的名称、版本、描述准确
方案 2:更改包名避免冲突
- 将
packages/mcp-oauth 重命名为其他名称
- 例如:
poe-mcp-oauth 或 @poe-platform/mcp-oauth
- 更新所有依赖该包的项目
方案 3:使用 resolutions/overrides
- 在依赖项目的 package.json 中添加 resolutions 指定正确版本
- 但这需要上游先发布包
复现步骤
- 安装依赖
opencode-poe-auth 或 poe-oauth
- 运行构建命令
- 包管理器从 npm 安装
mcp-oauth@1.0.0
- 构建失败,提示缺少 OAuth 相关导出
具体示例:
# 在 OpenCode 项目中
bun install
./packages/opencode/script/build.ts --single
# 错误输出
error: No matching export in "mcp-oauth/dist/index.js" for import "createLoopbackAuthorizationSession"
环境信息
附加信息
OpenCode 临时解决方案:
OpenCode 项目已暂时移除 opencode-poe-auth 依赖以避免构建失败:
相关 PR:
Issue: mcp-oauth 包名冲突导致依赖项目构建失败
问题描述
packages/mcp-oauth包存在于 Poe monorepo 中,提供 OAuth 功能,但未发布到 npm。npm 上已存在同名包mcp-oauth@1.0.0(punkpeye 的 MCP SSE proxy),导致依赖该包的项目从 npm 安装了错误的包,构建失败。根本原因
包名冲突:
Poe monorepo 中的
mcp-oauth@0.0.1:提供 OAuth 功能createLoopbackAuthorizationSession,generateCodeChallenge,generateCodeVerifierpackages/mcp-oauthnpm 上的
mcp-oauth@1.0.0:punkpeye 的 MCP SSE proxy依赖链:
当
poe-oauth依赖mcp-oauth: "*"时,包管理器从 npm 安装了错误的mcp-oauth@1.0.0,导致构建失败。影响
受影响项目:
opencode-poe-auth作为内置插件)poe-oauth或opencode-poe-auth的项目构建错误示例:
建议解决方案
方案 1:发布正确的包到 npm(推荐)
packages/mcp-oauth发布到 npm0.0.1或更高方案 2:更改包名避免冲突
packages/mcp-oauth重命名为其他名称poe-mcp-oauth或@poe-platform/mcp-oauth方案 3:使用 resolutions/overrides
复现步骤
opencode-poe-auth或poe-oauthmcp-oauth@1.0.0具体示例:
环境信息
packages/mcp-oauth,packages/poe-oauth,packages/opencode-poe-auth附加信息
OpenCode 临时解决方案:
OpenCode 项目已暂时移除
opencode-poe-auth依赖以避免构建失败:packages/opencode/package.json和packages/opencode/src/plugin/index.ts中的相关依赖相关 PR: