気まぐれメモランダム / でたらめフィードバック

Parcel 2とJestを組みあわせるときはBabelの設定を分離する

公開:

Parcel は便利、でも Jest を使うなら……の続き。

バージョン 2 リリースまで長い停滞期間のあったParcel、最近は開発が活性化しています。

バージョン 2 になって取りあつかいがおおきく変わったのがBabelの設定。 presets での @babel/preset-env@babel/preset-typescript@babel/preset-react の指定は Babel の設定としては定番ですが、Parcel はこの指定があるとしつこく警告します。

@parcel/transformer-babel: Parcel includes transpilation by default. Babel config .babelrc.js includes the following
redundant presets: @babel/preset-typescript, @babel/preset-react, @babel/preset-env. Removing these may improve build
performance.
@parcel/transformer-babel: @babel/preset-env does not support Parcel's targets, which will likely result in unnecessary
transpilation and larger bundle sizes.
@parcel/transformer-babel: @babel/preset-env does not support Parcel's targets, which will likely result in unnecessary
transpilation and larger bundle sizes.

公式ドキュメントの解説によると次の通り。

However, if you're only using `@babel/preset-env`, `@babel/preset-typescript`, and `@babel/preset-react`, Babel may no longer be necessary. Parcel supports all of these features automatically without a Babel config, and Parcel's default transpiler is much faster than Babel.

Parcel は Babel より速いしいらないよ、とのこと。ありがたい話ですが、Babel の設定はビルドのためだけにあるわけではありません。Jestも参照するので、Parcel の都合だけでは取り除きかねます。

Parcel の警告を余計なおせっかいとして無視し続ける手もありますが、気になる方は Jest のカスタムトランスフォーマ機能で Jest 用の Babel の設定をその中に取り込んでしまえばよいです。次の記事が参考になります。

.babelrc を使わずに独自の Babel の設定を使って Jest を実行する - Qiita

working-time-around の例はリンク先で確認できます。Jest の設定も忘れずに。

関連コンテンツ

Pick up work

最近のエントリ

アーカイブ

ブログ情報