GAミント至上主義

Web Monomaniacal Developer.

Nuxt v3.0.0でnuxt generate時のメモリエラー FATAL ERROR: Reached heap limit Allocation failed

Nuxt v3.0.0のテスト用プロジェクトで、GitHub Actionsでデプロイさせるためにnuxt generateコマンドを実行したところメモリ不足のエラーが出た。

ローカル環境では問題なく成功するし、GitHub Actionsでも成功するときもあるのでメモリリーク的な印象。

メモリを食うようなコード量もライブラリもなく、CIでもメモリ2GBはありそうなので、スペック的には問題ないはず。

<--- Last few GCs --->

[1844:0x624fd70]    77610 ms: Scavenge 2024.9 (2068.5) -> 2024.2 (2078.5) MB, 15.6 / 0.0 ms  (average mu = 0.502, current mu = 0.257) allocation failure 
[1844:0x624fd70]    77662 ms: Scavenge 2030.8 (2078.5) -> 2028.6 (2079.5) MB, 11.1 / 0.0 ms  (average mu = 0.502, current mu = 0.257) allocation failure 
[1844:0x624fd70]    78162 ms: Scavenge 2031.8 (2079.5) -> 2030.2 (2099.5) MB, 475.8 / 0.0 ms  (average mu = 0.502, current mu = 0.257) allocation failure 


<--- JS stacktrace --->

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
 1: 0xb06730 node::Abort() [node]
 2: 0xa1b6d0  [node]
 3: 0xce1e60 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
 4: 0xce2207 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
 5: 0xe99875  [node]
 6: 0xea953d v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
 7: 0xeac23e v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
 8: 0xe6d77a v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [node]
 9: 0x11e64e6 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [node]
10: 0x15da159  [node]
 ELIFECYCLE  Command failed with exit code 134.
Aborted (core dumped)
Error: Process completed with exit code 1.

issueを探すとそれっぽいのを発見。

github.com

コメントにあったこちらの設定を追加したところエラーが出ることがなくなった。

export default defineNuxtConfig({
  sourcemap: false
})

Vite側の問題っぽいのでバージョンアップが含まれるv3.1.0で直るかもしれないけど詳しくは見てない

github.com

Nuxt v3でcomposablesを使ってフラッシュメッセージをつくる

Nuxt v3はcomposablesにstateと処理をまとめると便利なので、よく使うフラッシュメッセージ(数秒表示されて勝手に消えるやつ)を作ってみました。

ソースコード github.com

Nuxtのドキュメントでも使われてるStackblitzを試してみたけどこういうときに便利 stackblitz.com

呼び出す側はこんな感じでテキスト、色タイプ、表示するマイクロ秒を渡す関数に。

const { showFlashMessage } = useFlashMessage()
showFlashMessage('this is Flash Message!', 'info', 4000)"

指定時間前に閉じるボタンがほしいときはclearFlashMessageを用意してあるので、FlashMessage.vue側に追加するとかいろいろカスタマイズできる。

メッセージのstyleはFlowbiteから拝借しました Tailwind CSS Alerts - Flowbite

消えたときのためのスクリーンショット

リモートワークで節電しつつ冬を乗り切る作業服コーディネート

物価や電気代ガス代高騰という名目と、電熱ベストが欲しかった欲望が合致し、リモートワークを作業着の力で乗り切ることにしました。

買った商品や選定基準をメモ。商品リンクはいつも買ってるまいど屋と、YouTubeチャンネルでお世話になってるユニフォームネクストへのリンクです。

環境

埼玉南部、マンション中層階、北側。エアコンなし。日中暖かいリビングとの間にはドアが2枚あり暖かさはこない。寒い。

机はスタンディングデスクもうすぐ2年目。ガス圧式(電動は甘え)です。

消費電力

電熱ベスト(2A*5Vで約10W)+ 足元に電気毛布を巻き(おそらく30W〜50W)、Maxでも計60Wぐらい。

家にあったオイルヒーター(500W〜1500W)や、市販の小型ヒーター(400Wとか1200Wとか)をつけるのに比べたら圧倒的に節電に成功した気がします。

こたつの方が良いかと思ってググったら弱でも100Wくらいらしい。

電熱ベスト強い。

電熱ベスト 自重堂 FGA20010

インナーベストタイプの電熱ベスト。ヒーターは内蔵で取り外し不可、専用10000mhバッテリー付き。

[秋冬用]FEVER GEAR ADVANCE 電熱インナーベスト[男女兼用](01-FGA20010) | 株式会社自重堂 | ワークユニフォーム

自重堂 FGA20010 電熱インナーベスト 7,710円|作業服・作業着ならまいど屋

室内なので襟はいらないし、外出時はジャンパーとかの下にも着やすそうだし、薄いインナータイプを選びました。

他にも各社たくさん出しておりたくさんあるわけですが、下記ポイントで選定。

電熱ベスト選定基準

1 発熱箇所が多い

発熱ポイントが多く全体的に温かそう。 他社のはヒーターが背中1本とか肩2箇所とかが多いんですが、このモデルは9箇所ポイントがあり、首も方も腰回りも全体的に温かいです。消費電力は同じなので薄く広くだとは思います、

またこちらの動画が決め手にもなりました。わかりやすいです。 www.youtube.com

完全に個人の感想ですが、着てから肩こりや背中、腰が痛くなることがほとんどなくなった気がします。冷えだったのか。

2 汎用性のUSB 有線で常に最強

普通のUSB端子であること。鉄板メーカーのバートルも夏用と共有の専用バッテリー、専用ケーブルなため除外。

空調ファン向けバッテリーは17Vとか18Vとか高電圧で高価なバッテリーが毎年のように売り出されてますが、電熱用途であれば5Vで十分なので、1万円程度するバッテリーの寿命を使うのは非常にもったいない気がします。

またUSB端子のものはメーカーが使えると正式に言っていなくても、規格がだいたいUSBなので自己責任で普通のモバイルバッテリーも使うことができます。 むしろ電熱ベスト側がスマホ用モバイルバッテリーを流用してコストを下げている構造とも思える。

そして私は、常に最強モード使いつつ、充電の手間を省くため、更に自己責任で有線で使うことにしました。

付属バッテリーの出力をみるとMaxでDC5V/2Aで10Wとあるので、USB2(2.5W)、USB3 (4.5W)規格の延長ケーブルではダメですが、Amazon等で「USB充電 延長ケーブル」とか検索すると最大2.4A出力とか書いてある製品が見つかります。知らんけど。

ケーブル抜き差しと電源入れ直しの長押しが面倒なので、部屋を出る度に着たり脱いだりしてます。その手間以上に暖かさの価値があります。

外出時にはバッテリーを使いますが、弱でも上にジャンパー着れば1日かなり暖かくできて十分です。

3 2世代目の信頼性

FGA20000の型番からわかるように、自重堂の2世代目の商品。上記の動画で詳しく説明されていますが、第1世代で出た問題を解決したらしく、信頼性が高そうだったのが決め手でした。

インナー バートル 4076シリーズ

防寒コンプレッションインナーを上下。これでピシっとしておくだけで全体的に冷えなくなります。

各メーカーから1000円以下〜2000円程度でたくさん出てるんですが、定番のバートルの現行品だと4076, 4077は間違いない。

バートル 4076 ホットフィッテッド 1,080円|作業服・作業着ならまいど屋

[秋冬用]バートル ホットフィッテッド[男女兼用](03-4076) | 株式会社バートル | ワークユニフォーム

去年買ったバートル4039(おそらく2022で廃盤)もありますが、部屋なので首はいらなかった。 バートル 4039 ホットフィッテッド 1,080円|作業服・作業着ならまいど屋

部屋干しでも一晩で乾くので、毎日洗濯してだいたい3セットあればまわせます。

厚さはない分、室内でもちょうどよく、肌触りもよいです。

ジョガーパンツ バートル 423, 442

足元もきゅっとしていた方が暖かそうなのと、裾上げ代も浮くのでジョガーパンツにしました。

まずは2021年発売のバートル 423。 まいど屋でも寒くなってからずっと1位になってたりど多くの通販サイトでも押されています。

11月にはいくつかのサイズ色が品切れしてました。

バートル 423 ホットジョガーパンツ 2,770円|作業服・作業着ならまいど屋

[通年]バートル ホットジョガーパンツ[男女兼用](03-423) | 株式会社バートル | ワークユニフォーム

裏がブロックフリースで外に出ても暖かく、生地も柔らかくストレッチもあるので動きやすい、そして安い。

売上的にも現時点最強の防寒ジョガーだと思います。

洗い替えにもう一つ423を買おうとしたんですが、2022年新商品のバートル 442 防風ジョガーパンツも気になったので購入しました。

バートル 442 防風ジョガーパンツ 2,720円|作業服・作業着ならまいど屋

[秋冬用]バートル 防風ジョガーパンツ[男女兼用](03-442) | 株式会社バートル | ワークユニフォーム

防風コーディング分、生地の硬さと重さがありますが、外の風が強い日などはこちらの方が温かそう。

通気性は悪いので、洗濯後に乾きにくいのと、激しい運動で汗かいたら濡れそうではある。

汎用性としたら上記423一択です。

シャツ類

上記電熱がベストがあるのと、重いの着てると疲れる、パソコンの操作の邪魔になるので、軽さと重視で選びました。

シンメン 0485 カチオンフリースロングスリーブ

シンメン 0485 カチオンフリースロングスリーブ 1,130円|作業服・作業着ならまいど屋

安い順しかないまいど屋で上の方にあったから買った。鳶服メーカーだからか袖がちょっと長めだけど、裏フリースでいい感じです。

バートル 4078 ホットロングTシャツ

バートル 4078 ホットロングTシャツ 1,310円|作業服・作業着ならまいど屋

こういうシャツはポリウレタンが入ってることが多く寿命が気になるんですが、これは珍しく入ってないので購入。 ストレッチは弱いですが十分で温かいです。

村上被服 236裏フリースポロシャツ

村上被服 236 裏フリースポロシャツ 1,390円|作業服・作業着ならまいど屋 襟がありも1つあっていいかなと安いので買ってみた。シャツというよりスウェット並の生地の厚さがあり温かいです。

まいど屋の口コミみると10年以上前のがあったりして、定番商品のようです。

防水防寒着 クロダルマ 54374 防水防寒ジャケット

部屋で着ないですが、スタッフジャンパーしか持ってないので、0度近いときや雨降ってる時の保育園送迎などの外出がつらかったので、強そうな防水防寒着を購入しました。

2022年新商品。まだ頼んだばかりで来てません。

maido-ya.com

色はKICKBACKっぽいイエローも良かったけど、無難にブルー。

今年行けるかわからないけど性能的にスキーもこれで良さそう。

一番の決め手は防水のTPU(熱可塑性ポリウレタン)コーティング。

一番売れてるバートルの防水防寒着7610なんかそうですが、生地はポリエステル100%でも防水・透湿のためにPU(ポリウレタン)コーティングされてることが多く、加水分解で経年劣化で2,3年でボロボロになるのが心配です。

[秋冬用]バートル 防水防寒ジャケット(03-7610) | 株式会社バートル | ワークユニフォーム

検索した感じTPUはPUよりは加水分解に強いらしい。

裏アルミもやっぱりあたたかそう。

もうすぐ冬本番ですが、そろそろ作業着の2023年春夏モデル情報が各社から出てるので楽しみです。

来年こそファン付きパンツ欲しいなぁ。