窓を作っては壊していた人のブログ

この謎のブログタイトルの由来を知るものはもういないだろう

既存の Azure Static Web Apps の Next.js hybrid mode アプリケーションのデプロイがバージョンアップによって失敗してしまったのを修正した

1年ほど前から Next.js v13 と Azure Static Web Apps を使って Hybrid rendering を行う Next.js アプリケーションをデプロイしていました。

v14 にアップデートしたタイミングでビルドに失敗するようになってしまいました。 直し方が Microsoft Learn にあったのでメモがてら載せておきます。

learn.microsoft.com

ビルドに使用する Node.js のバージョンの指定

私はデプロイに GitHub Actions の Azure/static-web-apps-deploy@v1 を使用しています。 デプロイの他にもビルドも行ってくれる Actions で、内部的にはビルドに Oryx が利用されているようです。

どうもこの Orxy、Node.js アプリケーションを渡すと、特に指定がないと Node.js v16 を使用してビルドを行うようで、この挙動が問題でした。

そのことが分かる GitHub Actions のログを以下に載せておきます。 v16 が使われていることがわかります。

Using Node version:
v16.20.2

Using Npm version:
8.19.4

Running 'npm install'...

npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'next@14.1.4',
npm WARN EBADENGINE   required: { node: '>=18.17.0' },
npm WARN EBADENGINE   current: { node: 'v16.20.2', npm: '8.19.4' }
npm WARN EBADENGINE }

added 325 packages, and audited 326 packages in 11s

129 packages are looking for funding
  run `npm fund` for details

1 moderate severity vulnerability

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

Running 'npm run build'...


> ******@0.1.0 build
> next build

You are using Node.js 16.20.2. For Next.js, Node.js version >= v18.17.0 is required.

であれば、Node.js のバージョンを上げることで対処できそうなことがわかります。 それではどの様に Node.js のバージョンを上げる、もしくは指定するのでしょうか?

それが前述した Learn に記載されていました。

Tutorial: Deploy hybrid Next.js websites on Azure Static Web Apps | Microsoft Learn

上記のドキュメント記載のように、package.json の engines フィールドに指定します。 これは、当該 package の動作するバージョンを明確にするために使用されるものですが、Oryx はこちらのフィールドを参照しているようです。

github.com

指定してみると、以下のようなログに変わりました。

Using Node version:
v18.17.1

Using Npm version:
9.6.7

Running 'npm install'...

これでビルド問題は解決しました。

終わりに

最新のドキュメントを読めば解決するという簡単な問題でした。 Microsoft のサービスを使う場合はだいたいのケースが Learn で解決するので、とりあえずハマったら見るようにしましょう…

また Azure Static Web Apps へのデプロイじゃなくて、Next.js 文脈でハマった箇所があったので、備忘録として以下にリンクを載せておきます。

lef237.hatenablog.com

引っ越しして1ヶ月、買ってよかったものとかを紹介していく

2023年の12月のクリスマスに今まで住んでいた渋谷から引っ越しをしました。 引越しに伴い、大学時代から使っていた家具だったり台所用品などを処分したため、多くの買い替えが発生しました。

変えてよかったなーと思ったものをいくつか紹介していこうと思います。

家のスペック的には1LDKで、台所周りマグネット付かない壁っていう前提で紹介します。

台所周り

ウタマロキッチン

部屋とかの拭き掃除もウタマロ!みたいなのをSNSで見て気になっていたところ、台所石鹸としてもあるのを見つけた。 使ってみたけど、汚れもバッチリ落ちるし泡のキレも良かったので買ってよかった。

次に載せるスポンジ?との相性も悪くなくGood

汚れ落ちがはなまるネット

台所にスポンジを干せる箇所がなかったので、前の家でも使っていた布っぽい薄いものを利用している。 細かい箇所までこすれるし、水キレもいいのでかなり好き。

あっちこっちふきん

水キレがいいので軽く絞って作業スペースとかをさっと拭いて終わりに出来る。 今まで台所の作業スペースが、水の跡がついて嫌だなーと思っていたけれども、これでさっと拭いて乾かせばいいだけなので最高。

シンク・洗面台用クリーナー

小さくて使い勝手いいスポンジ。 前からずっとリピしてるかも。

ニトリ 水切り+抗菌吸水マットセット

www.nitori-net.jp

かなりのベストバイだった。探せば100均にも近いのあるみたいだけど、ニトリに寄ったタイミングでこれだ!と思ったのでこっちを買った。 今までは水切りかごを常に作業スペースに置いていて、狭いし拭けないし、食器出しっぱなしで使わない食器はホコリが…っていう悩みがあった。 これを買うことによって一食分しか置けない、ちゃんとマットは乾かす必要があるという義務感が生まれて片付けるようになった。 水の吸収も早いし、おすすめ。

ゆびさきトング

世界変わった。 豚肉をよく買って食べるんだけど、広げやすい、手で触れないで済む、置きたい時は反対向きにする、みたいので体験が良い。

100均 Daisoのシリーズ

レンジフードフック4連 - ダイソーネットストア【公式】

キッチンペーパーホルダー(吸盤) - ダイソーネットストア【公式】

扉に付けるゴミ袋ホルダー(2個) - ダイソーネットストア【公式】

シンク扉用タオルバー - ダイソーネットストア【公式】

排水口カバー - ダイソーネットストア【公式】

磁石が付く場所が本当になかったので、吸盤タイプだったりレンジフードを活用していくスタイルにした。 その中でもわりとありだなと思ったのが、シンク扉にくっつけるタイプのもの。 袋はすぐに捨てるし、シンクの前にあっても特に気にならないし、タオルもすぐ変えるから扉に少しくっついても特に気にならない。

ここには載せてないけど、別途突っ張り棒とネットを使ってタオル干しや洗剤ストックなどを作っている。

洗面所・風呂場

オキシクリーン

定番

水切りワイパー

これは本当に買ってよかった。 自分は風呂入った後やシャワーを浴びた後に風呂掃除をするタイプの人間なんだけど、その後に水の後がついたりすると嫌な箇所をさっと水切ったり、鏡の曇を防止するためにも毎回ワイパーしている。 良い、本当に良い。

バスタブクレンジング

シューッと全体に吹きかけるのが楽なので好んで使ってる。 そのまま流せばいいらしいけど、結局擦っちゃってる。

泡ハンドソープ

前使っていたのが終売だったので新しいのに買い替え。 泡で出てくるのが楽だなーとなったので好んで使ってる。 匂いはもうちょい薄いのがあればいいんだけど…………

浮かせるスポンジホルダー

浮かせるスポンジホルダーUKIUKImini(透明) - ダイソーネットストア【公式】

スポンジ台を置くのがいやだったので、浮かせられるタイプを使ってみてる。 掃除の時にじゃまにならないし、こういう小さいものを使うのいいなーとなっている。

バス用スポンジ

バス用スポンジ(ハード樹脂) - ダイソーネットストア【公式】

丸いパイプにそのまま引っ掛けられて楽。

洗濯機かさ上げ台

一気に掃除しやすくなったし、少しずらすとかもやりやすくなった。 もうちょい高さあっても良かったと今となっては後悔してるけど、台あると格段に掃除しやすさ変わるし、ガタガタ言うのが減って良い。

トイレ

トイレ用クリーナートング

洗ってポイ トイレ用クリーナートング - ダイソーネットストア【公式】

これなかなかいい。 スポンジ系だと乾かす台を用意したり、そもそも下に置くと掃除に邪魔ってことでなんとかしたいなと思ってた所、先っぽを適当にトイレットペーパーにしたりで色々出来るのがあったのでこれを使ってる。

居室

ホッチキスでつける壁掛けフック

こんなのあったのかよ!になって速攻で買った。 これで壁にものを吊り下げてる(ダイソーアイアン棚を壁にかけて、そこにルーターとか置いてる)

シーリングライト

将来的にAlexa使える環境にするぞ!ってことでLEDシーリングライト買った。

タイルカーペット

前の家のフローリングを傷だらけにしたのと、そもそも日当たり悪くて寒いので買った。 部屋の雰囲気を簡単に変えることが出来たので良い。

カーテン

タイルカーペットとあわせた色にした。 居室はタイルカーペットとあわせて青系統、寝室は緑系統にするみたいなのをやってる。

寝室

ハグモッチ

はい。めっちゃいい。 なんというか、包まれる感あり良い。良い。 布団をもうちょいデカくしたいとか、重くしたいという気持ちが出てくる程度にデカいから敷ふとんのサイズと相談だけど、いい。

他にも色々買ったり、観葉植物を買ったりとかはあるけど、そこはまた気が向いたら。

引っ越しはものを捨てたり買い替えるいいタイミングだった。 過ごしやすい部屋を目指してまた色んなのを調べていきたい。

次はデスク周りをきれいにするぞ