typescript - 让 WebStorm 在自动导入中遵守 TypeScript 路径
问题描述
我有一个 Lerna 项目(TypeScript),其中包含用于 UI、API、后端的子模块和用于在域类型之间进行转换的实用程序模块等。
ROOT_DIR/tsconfig.json
packages/
ui/
tsconfig.json
src/(source files)
api/
tsconfig.json
src/(source files)
domain/
tsconfig.json
src/(source files)
我希望我的前端能够做类似import { getUser } from '@project/ui/user
而不是import { getUser } from '../../../../ui/src/user'
.
我已经进入了每个子模块tsconfig.json
并设置了compilerOptions.rootDir = 'src'
and extends = '../../tsconfig.json'
,并且在根目录中tsconfig.json
我设置了compilerOptions.baseUrl = './packages'
and compilerOptions.paths["@project/*"] = "./*/src"
。
我的理解是,基于阅读JetBrains关于如何执行此操作的文档(说使用tsconfig.json
paths
道具)和TypeScript 在道具上的文档paths
,这就是您应该这样做的方式。
但是,当我手动尝试import { myFunc } from '@project/ui/user
WebStorm/TypeScript时,会出现cannot find module '@project/ui/user' or its corresponding type declarations
.
如果我将光标放在我的代码中需要导入并点击 option+enter 的东西上,它会添加import { myFunc } from '../../../../ui/src/user'
.
我该如何解决?(关于如何修复 Gatsby 的配置以正确编译所有这些,未来可能会有后续问题,但我会将其推迟到问题出现之前,但会提前说明,以防明显影响答案。 )
编辑我还要说我在 SO 上寻找答案的范围很广,但是提议的解决方案似乎不起作用,或者它们无法解决我的项目中使其更加复杂的不同移动部分。
解决方案
推荐阅读
- javascript - 使用 Marker OnPress 发送标题和描述
- skiasharp - 在 Linux 上创建 SkiaSharp XPS 文档失败
- mysql - 如何组合到不同长度的sql列?
- javascript - 根据用户输入从文件中动态加载字体
- javascript - 从 HTML 无序列表创建数组
- python - 将下拉选择传递给 Flask/Python 函数
- javascript - 我如何“交换”谷歌地图字体以避免谷歌页面速度洞察警告?
- lookup - Informatica 查找字符串模式匹配
- ios - 捕捉图像方向问题
- python - 如何设置小部件以链接到 jupyternotebooks 的数组