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

Yarn Workspaces添加本地依赖时生成空文件夹问题求助

}
...
}

### backend的package.json
```json
{
  "private": true,
  "name": "@project/backend",
  "version": "1.0.0",
  "scripts": { ... }
  ...
}

frontend的package.json

{
    "name": "@project/frontend",
    "private": true,
    "version": "1.0.0",
    "workspaces": {
        "packages": [
            "apps/admin",
            "apps/user-type-1",
            "core"
        ]
    },
    "engines": {
        "node": "^20.5.1"
    },
    "packageManager": "yarn@3.6.1",
    "scripts": { ... },
    "dependencies": {
      "@project/backend": "1.0.0",
      ...
    }
    ...
}

后端包含前端所需的多项资源,因此我希望将backend添加为frontend的依赖,执行了以下命令:

yarn workspace @project/frontend add @project/backend@1.0.0

预期行为

  • frontend的node_modules中生成@project/backend文件夹
  • 可通过import访问后端类型及其他资源
  • 操作过程无错误抛出

实际行为

  • frontend的node_modules中生成了@project文件夹,但为空
  • 无法通过import访问后端类型
  • 操作过程无错误抛出

此前从前端导入后端是正常工作的,推测并非Yarn问题,而是某些更改导致,但即使恢复package.json至之前状态仍无法解决,特此求助。


排查与解决步骤

1. 补全backend的package.json关键配置

确保backend的package.json中指定了对外暴露的入口文件,TypeScript项目还需配置类型入口:

{
  "private": true,
  "name": "@project/backend",
  "version": "1.0.0",
  "main": "./dist/index.js", // 编译后的JS入口
  "types": "./dist/index.d.ts", // TypeScript类型入口
  "scripts": {
    "build": "tsc" // 新增编译脚本,确保代码能生成到dist目录
  }
  ...
}

缺少这些字段,Yarn无法识别后端包的可访问资源,会导致生成空目录。

2. 编译backend代码

执行命令确保后端代码完成编译:

yarn workspace @project/backend build

未编译的源码无法被前端正确导入。

3. 清理缓存并重装依赖

缓存异常可能导致依赖链接失效,执行以下命令重置:

yarn cache clean
yarn install

4. 验证工作区识别状态

在根目录执行命令,确认所有工作区被Yarn正确识别:

yarn workspaces list

如果backend未出现在列表中,需检查根目录workspaces配置是否正确。

5. 调整TypeScript路径映射(若使用TS)

在frontend的tsconfig.json中添加路径映射,指向后端编译后的文件:

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@project/backend/*": ["../../backend/dist/*"]
    },
    "composite": true // 启用复合项目,优化跨工作区类型解析
  }
}

内容的提问来源于stack exchange,提问作者The Blind Hawk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 11:30:54