添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

browserslist に従って記述することができます。

browserslist は、異なるツール間でブラウザの対象範囲を共有するための仕組みで、 browserslit パッケージを導入すると、 package.json に記述したようなルールを元に、実際の対象ブラウザがどんなものかを確認することができます。

さっそく入れてみましょう。

$ yarn add -D browserslist

一応ブラウザ情報を最新化しておくと良さそうです

$ yarn browserslist --update-db

さて、この状態で、先程同様に package.json にシェア率2%以上の旨が記載された状態で browserslist を実行してみます。

"browserslist": [
  "> 2%"
$ yarn browserslist
and_chr 81
chrome 80
ios_saf 13.3
safari 13
samsung 11.1

なるほどなるほど。Chromeがダントツなのは予想できますが、他にはsafariと、各種モバイルブラウザが2%以上を維持しているようですね。

例の I で始まって E で終わるブラウザが入っていないので、トランスパイルが不要というもの納得できます。

ポリフィルとは、最近の機能をサポートしていない古いブラウザーで、その機能を使えるようにするためのコードです。大抵はウェブ上の JavaScript です。

とはいえ、現代の @babel/preset-env では、 Polyfill もどうにかするオプションが用意されています。

これ のことっぽいけど、見た感じstableに入ってなさそうなのに何でだろ)

safari13だと18個
"use strict";
require("core-js/modules/es.promise.finally");
require("core-js/modules/es.string.replace");
require("core-js/modules/es.typed-array.float32-array");
require("core-js/modules/es.typed-array.float64-array");
require("core-js/modules/es.typed-array.int8-array");
require("core-js/modules/es.typed-array.int16-array");
require("core-js/modules/es.typed-array.int32-array");
require("core-js/modules/es.typed-array.uint8-array");
require("core-js/modules/es.typed-array.uint8-clamped-array");
require("core-js/modules/es.typed-array.uint16-array");
require("core-js/modules/es.typed-array.uint32-array");
require("core-js/modules/es.typed-array.from");
require("core-js/modules/es.typed-array.of");
require("core-js/modules/web.dom-collections.iterator");
require("core-js/modules/web.immediate");
require("core-js/modules/web.url");
require("core-js/modules/web.url.to-json");
require("core-js/modules/web.url-search-params");
Promise.resolve();
IE11だと188個
// (省略)

当たり前ですが、 core-js をimportしていなかったら何も起こらないのでご注意ください。

// import 'core-js/stable'
Promise.resolve()
"use strict";