2016-12-07 21 views
3

私はangular2(typescript)ウェブパックベースのプロジェクトを持っており、IDEAを2016.2から2016.3に更新した後、私はtypescriptモジュールのインポートパスにいくつかの問題があります。このような長い輸入を避けるために :IntelliJ Idea:カスタムインポートパス

import * from "src/app/some-component"; 
私はWebPACKののresolve.rootフォルダに "SRC /アプリ" を追加しました

ので、それは "SRC /アプリ" フォルダ内の

import * from "some-component" 

を見つけることができます。 しかし、IDEAは私のインポートステートメントを強調し、 "TS2307:モジュール 'some-component'を見つけることができません。私はIDEAがこのような「カスタム」インポートルートを認識していないためだと思います。

"src/app"フォルダ内のモジュールを検索するようにIDEAに指示する方法はありますか? 私は "ソースディレクトリとしてマークディレクトリ"と "言語&フレームワーク - > JavaScript - >ライブラリ"機能を試しましたが、何も変更されませんでした。

+2

"TS2307:モジュール 'some-component'が見つからないというのは、TSEコンパイラがIDEA自身ではなく、ルーツを解決できないということです。したがって、tsconfig.jsonを適切に設定する必要があります'、例えば - https://www.typescriptlang.org/docs/handbook/module-resolution.htmlを参照) – lena

+0

それが本当であることを確かめる。以前に述べたように、webpackはtsコンパイラを使ってプロジェクトを正常に構築します。 – DavyJohnes

+3

それは本当です:)それはwebpackが独自の設定で動作することは驚くことではありません。しかし、 'Settings |'で設定した組み込みコンパイラは、言語とフレームワーク| TypeScript'はwebpack設定ファイルを使用していないので、プロジェクトtsconfig.jsonに依存しています。 'Use TypeScript service'と 'Enable Typescript compiler'の両方を無効にしてコンパイラをオフにすると、組み込みコンパイラエラーを取り除くことができます。しかし、Ideaがそれらをサポートしていないので、Webpack固有のパスを解決するのにはまだ問題があります – lena

答えて

3

lenaありがとうございます。問題は

Settings | Languages & Frameworks | TypeScript 

に「活字体サービス」を無効にすることによって解決される。しかし、私は別のフォルダに見えるようにIDEAの活字体サービスを伝えるために活字体(tsconfig.json経由)を設定することができ、それはかなり確信しています。私は "rootDirs"がここで助けることができると思います。