76
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TypeScriptAdvent Calendar 2018

Day 20

awesome-typescript-loaderはもう使わないようにしよう、その理由

Last updated at Posted at 2018-12-24

どうも、sakitoです。

いまだにawesome-typescript-loaderを使用している人をちらほら見かけるので、その人たちへもう使わないほうがいいという説明の投稿です。

* この記事ではTypeScriptのドキュメントに合わせトランスパイルの言葉は使用せず、コンパイルに統一しています。

awesome-typescript-loaderはもう使わない

早速なのですが、awesome-typescript-loaderはもう使用しない方が良いです。
簡単な理由としては、awesome-typescript-loaderのGitHubを見ると分かるのですが、更新が3~5ヶ月程止まっているからです。
webpackやTypeScriptの更新にもう追いついていません。

IssueではTypescript 2.9-rcで動かない報告やwebpack 4 supportの報告があり、今だに閉じられていません。
実際に私の環境ではTypeScript v3.2のコンパイルができず、エラーで止まってしまいました。

webpack v4のバージョンにあげるとコンパイル速度が著しく悪くなったと言う報告も複数上がっています。
おまけに作者の返答もありません。

TypeScript公式のReact&webpackのhandbookに記載があるが?

現在多くの人が目にするTypeScript公式のReact&webpackのhandbookでは、awesome-typescript-loaderが推奨されており、ここを目にした人がawesome-typescript-loaderを使用していると思います。
しかし、現在handbookのPRにawesome-typescript-loaderからts-loaderに置き換える修正が出ています~~(紛らわしいので早くマージされてほしい)。~~

  • 2019/8/16 こちらマージされました!handbookの活動が再開したようです!

更新されなくなったのはなぜなのか推測

もともとawesome-typescript-loaderは作者が、ts-loaderを高速化する目的に開発をしたものだと記載があります。
ここからは推測なのですが、ts-loaderが改良を重ね、様々な手法を用いることでコンパイル速度が早くなり、awesome-typescript-loaderよりもコンパイル速度が上がり、不要になったのでメンテが止まったのかもしれません。

最後に

awesome-typescript-loaderをいまだに使用している人は、コンパイルがとても遅いと思います。
現在webpack v4でawesome-typescript-loaderを使用している方は、別の方法に変更するだけで、コンパイル速度があがる可能性もあります。
いずれにしろ、今後TypeScriptやwebpackのバージョンがあがるとバグに突き当たるので、awesome-typescript-loaderを使用するのは控えましょう。

awesome-typescript-loaderを使用しているPJにこの投稿を見せれば移行を説得する材料になるかと思います。ぜひ使ってください。

次はts-loaderと@babel/preset-typescriptについて書こうと思います。

76
25
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
76
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?