TypeScript の paths を効かせる

以下の手順が必要です。

  • tsconfig.jsonpathsを記述
  • package.jsonaliasを記述

tsconfig.json に paths を記述

こっちはやっている前提みたいな感じですが、以下のように設定するとfooという名前で TypeScript がsrc/foo/index.tsを見てくれるようになります。

{
  "baseUrl": ".",
  "paths": {
    "foo": ["src/foo/index.ts"]
  }
}

ですが、これはあくまで TypeScript で解決できるようにしたという話なだけで、 Parcel にとっては何の関係もない設定なので、Parcel 側では「foosrc/foo/index.tsなんだな」という紐づけができていません。

package.json に alias を記述

Parcel の紐づけは、pacakge.jsonaliasというセクションを置く必要があります。

{
  "alias": {
    "foo": "./src/foo/index.ts"
  }
}

これで Parcel を起動した時にfooという名前でインポートできるようになっているはずです。

ちなみにこのaliasは相対パス./../から書く必要があるようです。