【问题标题】:IntelliJ Idea: custom imports pathIntelliJ Idea:自定义导入路径
【发布时间】: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


【解决方案1】:

感谢lena。通过在

中禁用“TypeScript 服务”解决了问题
Settings | Languages & Frameworks | TypeScript

但我很确定可以配置 TypeScript(通过 tsconfig.json)来告诉 IDEA 的 TypeScript 服务查看其他文件夹。我想“rootDirs”可以在这里提供帮助。 module resolution

【讨论】:

    猜你喜欢
    • 2014-10-07
    • 2020-11-11
    • 2013-12-04
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多