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

Turbo repo中如何让内部开发包导入外部包的本地构建产物?

当然可以,给你几个实用的方案:

方案1:通过Monorepo工作区依赖 + 调整packageA入口

  1. 先修改packages/packageA/package.json,把入口指向build目录:
    {
      "main": "./build/index.js",
      "module": "./build/index.mjs" // 如果你用ESM规范的话加上这个
    }
    
  2. 在packages/development/dev-packageA/package.json里,把packageA的依赖改成工作区引用:
    {
      "dependencies": {
        "packageA": "workspace:*"
      }
    }
    
  3. 配置Turbo的任务依赖,确保dev-packageA运行前先构建packageA:
    在项目根目录的turbo.json里添加管道规则:
    {
      "pipeline": {
        "build": {
          "dependsOn": ["^build"],
          "outputs": ["build/**"]
        },
        "dev": {
          "dependsOn": ["^build"]
        }
      }
    }
    
    这样每次启动dev-packageA的开发服务时,Turbo会自动先执行packageA的build操作,dev-packageA导入的就是最新的build目录内容,完全不用发布新版本。

方案2:直接用相对路径导入build目录

如果只是临时测试,不想改配置,可以直接在dev-packageA的代码里用相对路径引用packageA的build文件:

import { xxx } from '../../packageA/build/index.js'

这种方式最直接,但缺点是目录结构变动时路径容易失效,适合快速验证场景。

额外提示

如果需要实时看到packageA修改后的效果,可以给packageA加一个watch命令自动重新构建,比如在packageA的package.json里:

{
  "scripts": {
    "watch": "your-build-command --watch"
  }
}

然后同时启动packageA的watch和dev-packageA的开发服务,就能实时同步build目录的更新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:25:53