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

Turbopack引用根目录外本地Monorepo包时依赖解析异常的问题求助

Turbopack引用根目录外本地Monorepo包时依赖解析异常的问题求助

我现在有个基于Turborepo的单体仓库,里面包含一个comments包。我想在另一个独立项目里本地导入这个包,同时还要支持热重载功能。

首先我在项目的package.json里做了如下配置:

"@my-scope/comments": "file:../../my-scope/packages/comments",

接着为了实现热重载,我修改了next.config.ts,指定了Turbopack的根目录,还配置了别名直接指向comments包的入口文件:

import type { NextConfig } from "next";
import path from "path";

const turboRoot = path.resolve(__dirname, "../..");

const nextConfig: NextConfig = {
  output: "standalone",
  turbopack: {
    root: turboRoot,
    resolveAlias: {
      "@my-project/comments":
        "../../my-project/packages/comments/src/index.tsx",

      "@tanstack/react-query": "./node_modules/@tanstack/react-query",
    },
  },
};

export default nextConfig;

最开始遇到的问题是:我的主项目已经提供了react-query的上下文,但comments包一直无法识别这个上下文,直到我在resolveAlias里添加了@tanstack/react-query的别名配置,这个问题才暂时得到解决。

可现在又出现了新的问题:不知道为什么,comments包始终在使用单体仓库里的@tanstack/react-query依赖,而不是主项目里的版本。哪怕我把单体仓库node_modules里的tanstack相关包删掉,它直接就找不到这个依赖了——明明主项目的node_modules里是存在这个包的啊。

补充更新:后来我发现其实package.json里不需要file://前缀,只靠resolveAlias就能实现热重载和代码更新同步,但tanstack-query的依赖解析问题还是没解决。

有没有比resolveAlias更优雅的解决方案,能让comments包所有的依赖都优先使用主项目里的版本,而不是去单体仓库里查找?

备注:内容来源于stack exchange,提问作者Ugus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 18:09:34