2017-06-09 14 views
1

私のReactプロジェクトでは、webpack configにモジュールエイリアスが定義されています。私はTypescriptに移行したいと思っています。Typescriptは "paths"設定で定義されたモジュールを見つけることができません

//私はセットアップにそれが意味

これは、ルートフォルダに私のtsconfig.jsonである可能な限り簡素化することを試みた:

{ 
    "compilerOptions": { 
    "target": "es6", 
    "module": "es6", 
    "moduleResolution": "node", 
    "jsx": "react", 
    "noImplicitAny": true, 
    "strictNullChecks": true, 
    "sourceMap": true, 
    "lib": [ 
     "dom", 
     "es2015", 
     "es2016" 
    ], 
    "baseUrl": "./src", 
    "paths": { 
     "app": ["./app"] 
    } 
    }, 
    "include": [ 
    "src/**/*" 
    ] 
} 

これは私のプロジェクト構造である:

[rootDir] 
| 
|- [src] 
| | 
| |-[app] 
| | 
| |-[components] 
|  | ... react components live here 
|  |- Test.tsx 
|  |- SomeComponent.tsx 
|  |- index.js (export { default as Test } from './Test') 
| 
|- tsconfig.json 
|- webpack.config.js 

私はawesome-typescript-loaderをWebpack 2で使用しており、そこにプラグインを含めてパスをロードしています。 Visual Studio Codeも使用していますが、Typescriptが組み込まれていますが、同じエラーが表示されます。私は次のエラーを取得する

import * as React from 'react' 
import { Test } from 'app/components' 

Cannot find module 'app/components' 
+0

私はあなたがまだ明示的にインポートしたいファイルに言及する必要があります確信している:「から 'インポート{テスト}/Test'' –

+0

@ChrisGないこのケースではありますので、 'components'ディレクトリの' index.js'ファイルを開きます。インポートパスにスラッシュを追加しようとしましたか?このように 'app/components/''から 'import {Test}'を実行します。私は*私は前に同様の問題を抱えていたと思うが、私は確かに言うことができない... –

答えて

0

解決策を見つけるのには、configのパスを編集することで、私はそうのような別のコンポーネントを含める私の活字体の構成要素SomeComponent.tsx

ネストされたファイル

"baseUrl": ".", 
"paths": { 
    "app*": ["src/app*"] 
} 

は、今私はimport { Test } from 'app/components'活字体がsrc/app/components/index.jsになります追加するときに、それが動作します。また、別のモジュールとの競合を避けるために、別名に@を追加することもできます。これと同じように:

"@app*": ["src/app*"] 
関連する問題