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
相关产品推荐
相关产品推荐

