2016-12-02 3 views
4

相対パスの代わりに、たとえば。 import Foo from '../Foo'は、大きなプロジェクトがあるときに髪の毛が出ることがあります。 import Foo from '~/utils/Foo'~がルートJSディレクトリにマップされています(例:assets/js)。vscodeはES6インポートの絶対パス参照をサポートできますか?

これは、vscodeのコントロールをクリックしたナビゲーションを壊してしまい、基本的にはインポートステートメントに従うことができないため、自動/暗黙のすべての推論が壊れているようです。

~をvscodeの特定のフォルダ/サブフォルダにマップする方法はありますか?

(理想的には、我々はsrc/test/jssrc/main/jsと我々のテストJSコードの1つ、例えば、当社の生産JSコードのための複数のマッピング、例えば、1つを持つことができます。)

+0

私はこれを見たいと思っていますが、まだそれを行う方法が見つかりませんでした。 – ssube

答えて

1

私はこれを信じていませんが、プレーンなJavaScriptのプロジェクトのためにサポートされ、 Typescriptプロジェクトではサポートされています(JSプロジェクトでも有効にするための回避策について詳しく説明します)。この種の機能をより良くサポートしたい場合は、open a feature requestをお勧めします。

{ 
    "compilerOptions": { 
     "baseUrl": ".", 
     "paths": { 
      "~/*": [ 
       "assets/js/*" 
      ] 
     } 
    } 
} 

pathsが希望マッピングです:

は、プロジェクトのルートに tsconfig.jsonファイルを作成し、活字体のプロジェクトでこれを有効にするには。 Here's more information about mappings。今

フォームのいずれかの輸入:

import Foo from '~/utils/Foo' 

は、デフォルトで活字体ファイルで動作しますが、あなたはまた、追加することによって、JSファイルでそれを有効にすることができ

import Foo from 'assets/js/utils/Foo' 

に解決されますこれは目を有効にする必要があり

{ 
    "compilerOptions": { 
     "baseUrl": ".", 
     "paths": { 
      "~/*": [ 
       "assets/js/*" 
      ] 
     }, 
     "allowJs": true 
    } 
} 

:そうのようなtsconfig.jsonから"allowJs": trueプロジェクト内のJavaScriptファイルと同じインテリセンス機能。

JavaScriptの場合、pathsの設定はツーリングのサポートのみであることに注意してください。コードのランタイム動作を変更することはないため、ランタイムがモジュールパス'~/utils/Foo'を適切に解決できるようにする必要があります。

また、このシナリオをよりサポートしたい場合や、ここで改善する方法についてのアイデアがある場合は、VSCodeに対する機能要求を開くことを検討してください。

関連する問題