Safariでエラー
ViteでビルドしたWebアプリが検証機でエラーになった。
検証機は古めのiPad。動作が非常にもっさりしているが、倹約を良しとするこの企業で検証用デバイスの刷新など最も優先順位が低い。結果、なかなか新しくならない。
エラーの原因は古いSafariが「Null合体演算子」に対応していないことだった。
古いiPadやiPhoneはiOS12までしか上がらないものがあるらしい。
検証機がまさしくそれだった。
ほとんどのiOSでは問題とならない。
上記の通り、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'],
}),
]
});
検証機を新しくしてほしい。。