2016-11-05 6 views
8

私はあなたがtypescriptでWebpack resolve.aliasは機能しませんか?

resolve: { 
    root: path.resolve(__dirname), 
    alias: { 
     Hello: "src/components/Hello" 
    }, 
    extensions: ["", ".ts", ".tsx", ".js"] 
}, 
を以下のようので、私はその部分を構成しWebPACKので resolve.aliasを使用することができます見つけたそのために import {Hello} from "Hello";

import {Hello} from "./components/Hello";

からtypescriptです

で私の輸入を短くしてみてください

Webpackがビルドされ、出力bundle.jsが機能します。しかし、typescriptのintellisenseそれを文句を言うcannot find the module

私の質問は、Webpackのresolve.alias typescriptで動作するかどうかですか?

issueに次のような結果が見つかりましたが、答えはありません。

答えて

12

あなたがts-loaderを使用している場合、あなたはあなたのtsconfig.jsonであなたのpaths設定であなたのWebPACK alias/resolve設定を同期する必要がある場合があります。

{ 
    "compilerOptions": { 
     "baseUrl": "./", 
     "paths": { 
      "Hello": ["src/components/Hello"] 
     } 
    } 
} 

あなたがawesome-typescript-loaderを使用している場合は、WebPACKのthe status on this issue from the repoごとに、あなたのtsconfig.jsonpaths設定から、これを自動的に把握することができます。そうすれば、Webpack aliasフィールドに同じ情報を複製する必要はありません。

+0

私が 'awesome-typescript-loader'を使っているときに' paths'プロパティを設定する必要があるようです。私はwebpack1とawesome-typescript-loader 1.1.1を使用しています。しかし、それは動作します:) – starcorn

+0

これは今私をもう一度持ってきました..あなたがパスを設定している場合は、あなたがbaseUrlを設定していることを確認してください。あなたは両方が必要です。 – SgtPooki

+0

新しいアプリケーションでは、アプリケーション/コンポーネントフォルダを追加し、その下のapp.comonentを独自のフォルダに移動します。 tscinfig:baseUrlを追加しています: "。"パス:{"〜c":["src/app/components"]}(コンポーネントとしてのc)エクスポート "./app.component/app.component"でindex.d.tsを追加してください。 npm awesome-typescript-loaderをインストールします。コードはimport {AppComponent}を "〜c"から解決できます。 (マウスのホバーが正しいパスを表示します)。 ng build - > C:/Temp/a4-cli-test/src/app/app.module.ts(4,30)のエラー:モジュール '〜c'が見つかりません。 私は何かを見逃しましたか? – Drusantia

-1

私はあなたがこれを行うと、それはあなたが記述のように動作することができますと思う

resolve: { 
    root: [ 
     path.resolve(__dirname), 
     <path_to_components_directory> //e.g. path.resolve(__dirname, 'src', 'components') 
    ], 
    extensions: ["", ".ts", ".tsx", ".js"] 
}, 

次にあなたがimport {Hello} from "Hello";

を行うことができます私はsrc/jsディレクトリ内のファイルパスを解決するために、これを行う知っています。私はtypescriptを使用していませんが、結果に影響するとは思いません。

+1

ですが、ここではタイスクリプトが問題です – Luckylooke

関連する問題