You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用yarn workspaces时tsc找不到apollo-server下的express声明文件

问题修复方案

1. 修正tsconfig错误配置

你当前graphql子包的tsconfig中设置了"baseUrl": "./src",但项目结构里子包根目录下直接存放index.ts,不存在src文件夹,会导致TypeScript模块解析路径偏移,无法正确识别已安装的@types/express类型包。
修改子包tsconfig.json如下:

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "commonjs",
    "outDir": "./dist",
    "strict": true,
    "incremental": true,
    "noUnusedLocals": true,
    "esModuleInterop": true,
    "noUnusedParameters": true,
    "noFallthroughCasesInSwitch": true,
    // 把baseUrl改为当前目录,没有别名需求也可以直接删除这行配置
    "baseUrl": ".",
    // 新增typeRoots配置,确认类型包查找路径
    "typeRoots": ["./node_modules/@types", "../../node_modules/@types"],
    "skipLibCheck": false
  },
  "include": ["**/*.ts"],
  "compileOnSave": true
}

2. 清理无用文件

你贴出的index.ts中没有引入express的代码,但报错指向第2行的import express语句,说明子包下存在其他未清理的测试用.ts文件,或者本地index.ts和你贴出的版本不一致,先删除所有无用的.ts文件,确认代码内容正确。

3. 适配Yarn 3 PnP依赖机制

Yarn 3默认启用PnP依赖管理,不会生成传统node_modules文件夹,TypeScript默认解析逻辑无法识别PnP环境下的依赖路径,按以下步骤适配:

  • 根目录执行命令安装Yarn官方SDK:
    yarn add -D @yarnpkg/sdks
    yarn sdks typescript
    
  • 执行完成后工具会自动更新tsconfig配置,添加PnP适配逻辑。

如果你不想适配PnP,可改用传统node_modules模式:在根目录新增.yarnrc.yml文件,写入以下内容:

nodeLinker: node-modules

之后删除根目录.yarn文件夹、yarn.lock文件,重新执行yarn install安装依赖即可。

4. 清理增量编译缓存

你开启了增量编译配置,旧缓存可能导致错误持续触发,修复后执行以下命令重新编译:

yarn workspace graphql tsc --build --clean
yarn workspace graphql tsc --build

内容的提问来源于stack exchange,提问作者Bene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:45:03