18

在处理一个更大的 typescript 项目时,我们决定将代码移动到带有yarn workspaces的 monorepo 中。

我们使用webpack构建和打包,一切正常(尤其是本地模块/包之间的链接)。

由于 yarn 工作区会将大部分 node_modules 存储在 monorepo 的根文件夹中,因此 IDE(IntelliJ 和 VSCode)在“内部”项目(所谓的 monorepo 的“包”)中编码时无法解析对任何 node_modules 的导入)。

奇怪的是导入是未知的,但另一方面,如果您手动将其写下来,大多数情况下您可以导航到 IDE 中的正确源/定义以进行相同的导入。

我们试图告诉 IntelliJ 查看另一个文件夹中的 node_modules,但仍然不满意。

分享您在 yarn 工作空间/monorepo(例如 lerna)方面的经验,以及您如何在这些 monorepos 中开发代码。

您使用哪个 IDE?

您是否向 IDE 和/或 package.json、tsconfig.json 添加了任何特殊配置?

4

4 回答 4

4

https://github.com/Izhaki/mono.ts

它使用纱线工作区并与 VSCode 很好地结合。我希望自述文件足够清楚。

基本上,使用两个(并行)打字稿配置树:

  • 预构建- 使用别名(用于 VSCode、测试、webpack 等)。
  • 构建- 本质上使用 typescript 3 项目引用进行发布。
于 2018-12-29T01:01:58.370 回答
3

IDEA 不提供对 Yarn 工作区的任何支持;如果您错过了,请关注WEB-29250和链接的门票以获取更新。您可以尝试将路径映射添加到您的tsconfig.json- 请参阅https://intellij-support.jetbrains.com/hc/en-us/community/posts/207656825/comments/115000529564

于 2017-11-17T10:24:13.597 回答
3

从 2018.1.1 开始更新 IntelliJ 现在支持纱线工作区,因此如果您使用它,应该不会有问题。

https://blog.jetbrains.com/webstorm/2018/04/webstorm-2018-1-1/

于 2018-06-27T10:21:05.650 回答
1

请分享您在 yarn 工作空间/monorepo(例如 lerna)方面的经验,以及您如何在这些 monorepos 中开发代码。

您使用哪个 IDE?

既然你问。我基本上遇到了和你一样的问题。我正在研究的一种解决方案是禁用提升节点模块,如此处所述。不幸的是,它似乎还没有在稳定版本中。

我最终的结果是暂时放弃工作区直到他们修复 IDE 或发布 nohoist 选项。相反,我现在正在使用lerna。它不太方便,但它不会提升,因此构建工具和 IDE 都满意。

哦,我也在用 IntelliJ(终极版)

于 2018-02-24T11:54:45.023 回答