【发布时间】:2017-04-22 20:13:30
【问题描述】:
我有基于 angular2 (typescript) webpack 的项目,在将 IDEA 从 2016.2 更新到 2016.3 之后,我在 typescript 模块中的导入路径遇到了一些问题。 为了避免如此长的导入:
import * from "src/app/some-component";
我已经在 webpack 的 resolve.root 文件夹中添加了“src/app”,所以它可以找到
import * from "some-component"
在“src/app”文件夹中。 但是,IDEA 突出显示了我的导入语句并说“TS2307:找不到模块'some-component'”。我猜这是因为 IDEA 不知道这种“自定义”导入根。
那么,有没有办法告诉 IDEA 在“src/app”文件夹中搜索模块? 我尝试了“将目录标记为源根”和“语言和框架 -> JavaScript -> 库”功能,没有任何改变。
【问题讨论】:
-
"TS2307: Cannot find module 'some-component'" 意味着 TS 编译器无法解析你的根源,而不是 IDEA 本身......所以你必须相应地设置你的 tsconfig.json (使用
paths,例如 - 见typescriptlang.org/docs/handbook/module-resolution.html) -
不确定是否属实。正如我之前提到的,webpack 使用 ts 编译器成功构建了项目。
-
是真的:) webpack 能够使用自己的配置并不奇怪。但是
Settings | Languages & Frameworks | TypeScript中设置的内置编译器并没有使用 webpack 配置文件,它只是依赖于你的项目 tsconfig.json。您可以通过禁用“使用 TypeScript 服务”和“启用 Typescript 编译器”来关闭编译器,以消除内置编译器错误。但是你仍然会在解析特定于 webpack 的路径时遇到问题,因为 Idea 不为它们提供支持
标签: angular typescript intellij-idea webpack jetbrains-ide