2016-07-01 13 views
9

このプロジェクトでは、webpack resolve.rootオプションを使用して絶対パスでモジュールをインポートしています。 (../../../moduleのようなものを避ける)
現在の状態では、プロジェクトはバベルローダーを使用しています。
私の仕事は、アプリケーションを角2に移行することです。
そのため、現在私はTypeScriptに移行中です。
どうにかしてts-loaderがwebpack configのresolve.rootオプションと組み合わせて動作しないようです。 webpack.config.jsWebpack resolve.rootとTypeScriptローダー

resolve: { 
    root: [ 
     path.resolve('./node_modules'), 
     path.resolve('./app'), 
     path.resolve('./app/lib'), 
    ] 
}, 

モジュールインポートの例
import AbstractListState from 'states/abstract_list_state';

statesディレクトリがapp/libディレクトリ内にあります。

エラーnode_modulesディレクトリからの絶対パスとモジュールをロードしようとwebpack

ERROR in ./app/mainViews/panel/panel.controller.ts 
Module not found: Error: Cannot resolve module 'states/abstract_list_state' in C:\Users\...\Project\app\mainViews\panel 
@ ./app/mainViews/panel/panel.controller.ts 4:28-65 
+2

参照:https://github.com/をMicrosoft/TypeScript/issues/5039。 'tsconfig.json'ファイルでこれを行う方法は、TypeScript 2で実装されます。どうやら、今日は' typescript @ next'を使ってそれをテストすることができます。 – Blackus

答えて

2

前バージョン2.0活字体を実行します。これは、TypeScriptのモジュール結果がデフォルトで "node"に設定されているためです。つまり、ノードのrequireメソッドのように動作します。したがって、Webpackを使用してアプリケーションを構築している場合でも、TypeScript(およびそのコンパイラ)は引き続きファイルをロードします。

webpackがモジュールを絶対パスでインポートできるようにするには、戻ってrequireメソッドを使用する必要があります。このようにして、TypeScriptはwebpackの読み込みを許可します。しかし、もちろん、あなたは...、

を任意の型推論、オートコンプリートを取得することはありませんか、あなたはtypescriptです2.0ベータ版に更新し、これを試してみる:https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript#module-resolution-enhancements-baseurl-path-mapping-rootdirs-and-tracing

関連する問題