首页 > 解决方案 > Intellij“查找用法”不适用于 Lerna 包

问题描述

我有一个带有Lerna的 typescript monorepo 设置。我正在观察“查找用法”功能的错误(或我的错误配置)。

我有一个 GitHub 存储库,可以在此处重现该问题: https ://github.com/mcclaskc/IntellijLernaExample

假设我有包 A,带有 functiona()和包 B,其中包含 A 作为 package.json 中的依赖项,并使用a().

在 Intellij 的声明中a(),如果我尝试“查找”的“用法” a(),则不会出现任何结果。但是,如果我在 B 中,请单击 的用法a(),然后尝试“转到声明” a(),它可以工作,并将我导航到 A 包中的声明。

由于“去声明”有效,我知道 Intellij 知道在一个方向上的依赖关系,我只需要弄清楚如何让它在另一个“查找用法”方向上知道。

我已经尝试弄乱 Find Usages 选项范围,但无济于事。

标签: javascripttypescriptintellij-ideanpmlerna

解决方案


问题是您为 Lerna 包创建了单独的 IDEA 模块。跨 IDEA 模块边界找不到 JavaScript/Typescript 用法 - 这是一个已知限制。您可以导航到导出的函数,因为它们是显式导入的并且可以通过导入路径找到,但是在子模块中搜索导出的函数用法将不会返回任何结果......有一个支持多模块应用程序的功能请求,WEB-37907,请随时为它投票。目前,我只能建议将所有 Typescript 代码保存在一个 IDEA 模块中


推荐阅读