Node.js v20 で GitHubActions から Vercel へのデプロイがコケた話
Vercel が Node.js v20 無いとかエラー出してくる → Error: Found invalid Node.js Version: "20.x". Please set "engines": { "node": "18.x" } in your `package.json` file to use Node.js 18.
指定された メディアクエリ文字列のパース結果を表す、新しい MediaQueryList オブジェクトを返します。
状況に応じてリッチな UI や振る舞いを表現するために使えそう。
自分はアプリケーションが PWA で動いているかどうかで動作を変えたいシチュエーションがあったのでそこで活かした。
※ manifest.json
で "display": "standalone"
の指定がされていること
if (window.matchMedia('(display-mode: standalone)').matches) { // PWA のときの処理 }
if (window.matchMedia( "(orientation: landscape)" ).matches) { // 横向き } if (window.matchMedia( "(orientation: portrait)" ).matches) { // 縦向き }
if (window.matchMedia( "(min-width: 1024px)" ).matches) { // PC } else if (window.matchMedia('(min-width: 768px)').matches) { // タブレット } else { // SP }
↑ 画面の向きも合わせるとより正確に判定できる
特に画面の向きやサイズに応じた JS での制御は、SPAが標準的な今あまりDOMにアクセスして要素の情報から制御するのは気が引ける(ライフサイクルやレンダリングの仕組みへの理解がある程度必要になる)ので、MediaQuery を利用して制御できるのは手軽でよい。
ただし window
オブジェクトを参照しているため実行環境への配慮は必要。
Vercel が Node.js v20 無いとかエラー出してくる → Error: Found invalid Node.js Version: "20.x". Please set "engines": { "node": "18.x" } in your `package.json` file to use Node.js 18.
public ディレクトリにおいてる画像とかのパスを補完が効くようにしたい
windows はクソ(暴論)