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

Null合体演算子がSafariでエラーだった

Posted at

Safariでエラー

ViteでビルドしたWebアプリが検証機でエラーになった。
検証機は古めのiPad。動作が非常にもっさりしているが、倹約を良しとするこの企業で検証用デバイスの刷新など最も優先順位が低い。結果、なかなか新しくならない。

エラーの原因は古いSafariが「Null合体演算子」に対応していないことだった。

古いiPadやiPhoneはiOS12までしか上がらないものがあるらしい。
検証機がまさしくそれだった。

ほとんどのiOSでは問題とならない。

スクリーンショット 2023-12-11 16.27.45.png
上記の通り、Safariが14以降であれば対応している。
14未満のシェアは1%を切っているので、要件によっては対応する必要がないかもしれない。

Null合体演算子

Null合体演算子は、左辺が null または undefined の場合に右の値を返し、それ以外の場合に左の値を返す。

const bar = 55 ?? 125;
console.log(bar); // 55

??だからググっても出てこない。
こういうのをググラビリティが悪いと言うらしい。

オプショナルチェイニング演算子も、

?.

なので、ググラビリティが非常に悪い。

Viteでの解決策

このようなレガシーブラウザに対応すべきかどうかは要検討だけど、もしViteで対応するのならばプラグインを追加してレガシー用のコンパイルにする。

import legacy from '@vitejs/plugin-legacy'

export default defineConfig({
  plugins: [
    legacy({
      targets: ['defaults', 'not IE 11'],
    }),
  ]
});

検証機を新しくしてほしい。。

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