1
0

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 3 years have passed since last update.

babel-polyfillと@babel/polyfillの違いってなんだ?備忘録

Posted at

背景

Bugsnagでオブジェクトは 'finally' プロパティまたはメソッドをサポートしていませんとエラーが吐かれることから調査をしていた。どうやらnew Promise.finally()がIE非対応なことに起因しているようである。MDN - Promise.prototype.finally()

そこで、package.jsonを確認してみると、以下のようになっていた。
スクリーンショット_2020-07-15_14_47_25.png

  • babel-polyfillは入っているじゃないか
  • 最後のアップデートは3年前って化石プロジェクトか?w

普段あまり関わらないプロジェクトなので、たまに触りにくると、こういうものを見つけたりする。

さて、ここである疑問が浮かんだ。

babel-polyfill@babel/polyfillの違いってなんだ?

調べて見た

babel-polyfillとググっても、結果としてヒットするのは@babel/polyfillのほうだ。

同じものなのか?と思って、yarn upgrade babel-polyfill --latestとやってみるも、更新されない。(*後から考えるとそりゃそうだってツッコミたくなるが、スルーしてください)

Babelのバージョン一覧を確認してみる
スクリーンショット 2020-07-15 15.11.06.png

どうやら同じである。ということは、メジャーアップデートの際に何かしら変更があったのか?

ということで、Babel 7 Releasedを記事を読んでみた。そして下の方にスクロールすると...

あった。これか

Major Breaking Change

Move us to the @babel namespace by switching to using "scoped" packages (details). This helps differentiate official packages, so babel-core becomes @babel/core (and no squatting)

なるほど、バージョンが7.0.0になった時に、名前空間が変わったようだ。これが影響して、--latestをつけただけでは単純にパッケージが@babel/polyfillに切り替わらなかったのである。

結論

  • 同じパッケージであるが、バージョン7.0.0をきっかけに名前空間が変わっている
  • パッケージの更新をするには、改めてyarn add -D @babel/polyfillをしたのち、yarn remove babel-polyfillとなる。

*ただし、Babel7.4.0から@babel/polyfillは非推奨になっているので、ご了承ください
=> Babel7.4で非推奨になったbabel/polyfillの代替手段と設定方法

1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?