[{"data":1,"prerenderedAt":377},["ShallowReactive",2],{"article-alabaster-themes-2026-q3-update":3},{"id":4,"title":5,"body":6,"date":366,"description":367,"extension":368,"locale":369,"meta":370,"navigation":371,"path":372,"seo":373,"sitemap":374,"stem":375,"__hash__":376},"articles\u002Fblog\u002Falabaster-themes-2026-q3-update.md","Alabaster Themes 2026 Q3 Update",{"type":7,"value":8,"toc":360},"minimark",[9,13,16,19,24,47,51,54,57,65,68,253,260,267,282,289,298,302,321,332,341,344,348,356],[10,11,12],"p",{},"I regularly updating my open source projects and this is the first time I'm publishing it on my blog. Starting from now, I will publish the regular updates on this blog, inshaa Allah.",[10,14,15],{},"I'm doing this so people would know that my projects are well maintained though every update might not bring noticable changes.",[10,17,18],{},"Let's see what's new in this update.",[20,21,23],"h2",{"id":22},"whats-new","What's new",[25,26,27,40],"ul",{},[28,29,30,31,35,36,39],"li",{},"Node.js packages are updated to the latest version except ",[32,33,34],"code",{},"better-sqlite3"," is still kept at version 12 because ",[32,37,38],{},"@nuxt\u002Fcontent"," is not ready yet to support version 13.",[28,41,42,43,46],{},"Add ",[32,44,45],{},".nvmrc"," file to automatically select Node.js runtime version on both local development and Cloudflare Pages deployment.",[20,48,50],{"id":49},"failed-deployment","Failed deployment",[10,52,53],{},"I had a several deployment errors when I pushed some commits to the development branch. When I checked on the Cloudflare dashboard, the UI of the dashboard page is slightly different than the last time I logged in, especially the deployment settings page.",[10,55,56],{},"I updated the Node.js version for building the application to version 24 so it will match with the version installed on my computer.",[10,58,59,60,64],{},"Since I created a development branch for this update and pushed it to GitLab, Cloudflare detected the new branch and deployed the ",[61,62,63],"strong",{},"Preview"," version. Soon after I pushed the new branch, I got an email notifying me that the deployment was failed.",[10,66,67],{},"I checked the error log and it looks like this:",[69,70,75],"pre",{"className":71,"code":72,"language":73,"meta":74,"style":74},"language-log shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","2026-08-25T14:14:50.281749Z Cloning repository...\n2026-08-25T14:14:53.255884Z warning: redirecting to https:\u002F\u002Fgitlab.com\u002Ffindrakecil\u002Falabaster-themes.git\u002F\n2026-08-25T14:14:53.25635Z  From https:\u002F\u002Fgitlab.com\u002Ffindrakecil\u002Falabaster-themes\n2026-08-25T14:14:53.256473Z  * branch            011b853f7926da9c57bcfb1453d45b8cb5beeebb -> FETCH_HEAD\n2026-08-25T14:14:53.256535Z\n2026-08-25T14:14:53.339495Z HEAD is now at 011b853 fix: build error\n2026-08-25T14:14:53.340589Z\n2026-08-25T14:14:53.72842Z\n2026-08-25T14:14:53.732335Z Using v2 root directory strategy\n2026-08-25T14:14:53.797824Z Success: Finished cloning repository files\n2026-08-25T14:14:57.417083Z Checking for configuration in a Wrangler configuration file (BETA)\n2026-08-25T14:14:57.418777Z\n2026-08-25T14:14:57.714389Z No Wrangler configuration file found. Continuing.\n2026-08-25T14:14:58.117882Z Detected the following tools from environment: npm@10.9.2, nodejs@22.16.0\n2026-08-25T14:14:58.118632Z Installing project dependencies: npm clean-install --progress=false\n2026-08-25T14:15:02.26971Z  npm error code EBADPLATFORM\n2026-08-25T14:15:02.270103Z npm error notsup Unsupported platform for @oxc-parser\u002Fbinding-android-arm-eabi@0.147.0: wanted {\"os\":\"android\",\"cpu\":\"arm\"} (current: {\"os\":\"linux\",\"cpu\":\"x64\"})\n2026-08-25T14:15:02.270219Z npm error notsup Valid os:   android\n2026-08-25T14:15:02.270273Z npm error notsup Actual os:  linux\n2026-08-25T14:15:02.270317Z npm error notsup Valid cpu:  arm\n2026-08-25T14:15:02.270357Z npm error notsup Actual cpu: x64\n2026-08-25T14:15:02.271323Z npm error A complete log of this run can be found in: \u002Fopt\u002Fbuildhome\u002F.npm\u002F_logs\u002F2026-08-25T14_14_59_654Z-debug-0.log\n2026-08-25T14:15:02.339404Z Error: Exit with error code: 1\n2026-08-25T14:15:02.34081Z      at ChildProcess.\u003Canonymous> (\u002Fsnapshot\u002Fdist\u002Frun-build.js)\n2026-08-25T14:15:02.341058Z     at Object.onceWrapper (node:events:652:26)\n2026-08-25T14:15:02.341272Z     at ChildProcess.emit (node:events:537:28)\n2026-08-25T14:15:02.341366Z     at ChildProcess._handle.onexit (node:internal\u002Fchild_process:291:12)\n2026-08-25T14:15:02.352819Z Failed: build command exited with code: 1\n2026-08-25T14:15:03.489623Z Failed: error occurred while running build command\n","log","",[32,76,77,85,91,97,103,109,115,121,127,133,139,145,151,157,163,169,175,181,187,193,199,205,211,217,223,229,235,241,247],{"__ignoreMap":74},[78,79,82],"span",{"class":80,"line":81},"line",1,[78,83,84],{},"2026-08-25T14:14:50.281749Z Cloning repository...\n",[78,86,88],{"class":80,"line":87},2,[78,89,90],{},"2026-08-25T14:14:53.255884Z warning: redirecting to https:\u002F\u002Fgitlab.com\u002Ffindrakecil\u002Falabaster-themes.git\u002F\n",[78,92,94],{"class":80,"line":93},3,[78,95,96],{},"2026-08-25T14:14:53.25635Z  From https:\u002F\u002Fgitlab.com\u002Ffindrakecil\u002Falabaster-themes\n",[78,98,100],{"class":80,"line":99},4,[78,101,102],{},"2026-08-25T14:14:53.256473Z  * branch            011b853f7926da9c57bcfb1453d45b8cb5beeebb -> FETCH_HEAD\n",[78,104,106],{"class":80,"line":105},5,[78,107,108],{},"2026-08-25T14:14:53.256535Z\n",[78,110,112],{"class":80,"line":111},6,[78,113,114],{},"2026-08-25T14:14:53.339495Z HEAD is now at 011b853 fix: build error\n",[78,116,118],{"class":80,"line":117},7,[78,119,120],{},"2026-08-25T14:14:53.340589Z\n",[78,122,124],{"class":80,"line":123},8,[78,125,126],{},"2026-08-25T14:14:53.72842Z\n",[78,128,130],{"class":80,"line":129},9,[78,131,132],{},"2026-08-25T14:14:53.732335Z Using v2 root directory strategy\n",[78,134,136],{"class":80,"line":135},10,[78,137,138],{},"2026-08-25T14:14:53.797824Z Success: Finished cloning repository files\n",[78,140,142],{"class":80,"line":141},11,[78,143,144],{},"2026-08-25T14:14:57.417083Z Checking for configuration in a Wrangler configuration file (BETA)\n",[78,146,148],{"class":80,"line":147},12,[78,149,150],{},"2026-08-25T14:14:57.418777Z\n",[78,152,154],{"class":80,"line":153},13,[78,155,156],{},"2026-08-25T14:14:57.714389Z No Wrangler configuration file found. Continuing.\n",[78,158,160],{"class":80,"line":159},14,[78,161,162],{},"2026-08-25T14:14:58.117882Z Detected the following tools from environment: npm@10.9.2, nodejs@22.16.0\n",[78,164,166],{"class":80,"line":165},15,[78,167,168],{},"2026-08-25T14:14:58.118632Z Installing project dependencies: npm clean-install --progress=false\n",[78,170,172],{"class":80,"line":171},16,[78,173,174],{},"2026-08-25T14:15:02.26971Z  npm error code EBADPLATFORM\n",[78,176,178],{"class":80,"line":177},17,[78,179,180],{},"2026-08-25T14:15:02.270103Z npm error notsup Unsupported platform for @oxc-parser\u002Fbinding-android-arm-eabi@0.147.0: wanted {\"os\":\"android\",\"cpu\":\"arm\"} (current: {\"os\":\"linux\",\"cpu\":\"x64\"})\n",[78,182,184],{"class":80,"line":183},18,[78,185,186],{},"2026-08-25T14:15:02.270219Z npm error notsup Valid os:   android\n",[78,188,190],{"class":80,"line":189},19,[78,191,192],{},"2026-08-25T14:15:02.270273Z npm error notsup Actual os:  linux\n",[78,194,196],{"class":80,"line":195},20,[78,197,198],{},"2026-08-25T14:15:02.270317Z npm error notsup Valid cpu:  arm\n",[78,200,202],{"class":80,"line":201},21,[78,203,204],{},"2026-08-25T14:15:02.270357Z npm error notsup Actual cpu: x64\n",[78,206,208],{"class":80,"line":207},22,[78,209,210],{},"2026-08-25T14:15:02.271323Z npm error A complete log of this run can be found in: \u002Fopt\u002Fbuildhome\u002F.npm\u002F_logs\u002F2026-08-25T14_14_59_654Z-debug-0.log\n",[78,212,214],{"class":80,"line":213},23,[78,215,216],{},"2026-08-25T14:15:02.339404Z Error: Exit with error code: 1\n",[78,218,220],{"class":80,"line":219},24,[78,221,222],{},"2026-08-25T14:15:02.34081Z      at ChildProcess.\u003Canonymous> (\u002Fsnapshot\u002Fdist\u002Frun-build.js)\n",[78,224,226],{"class":80,"line":225},25,[78,227,228],{},"2026-08-25T14:15:02.341058Z     at Object.onceWrapper (node:events:652:26)\n",[78,230,232],{"class":80,"line":231},26,[78,233,234],{},"2026-08-25T14:15:02.341272Z     at ChildProcess.emit (node:events:537:28)\n",[78,236,238],{"class":80,"line":237},27,[78,239,240],{},"2026-08-25T14:15:02.341366Z     at ChildProcess._handle.onexit (node:internal\u002Fchild_process:291:12)\n",[78,242,244],{"class":80,"line":243},28,[78,245,246],{},"2026-08-25T14:15:02.352819Z Failed: build command exited with code: 1\n",[78,248,250],{"class":80,"line":249},29,[78,251,252],{},"2026-08-25T14:15:03.489623Z Failed: error occurred while running build command\n",[10,254,255,256,259],{},"At first I confused about ",[32,257,258],{},"npm error code EBADPLATFORM"," error message. It was stated on the documentation that Cloudfare Pages uses Ubuntu 22.04 for build image and maybe for deployment too. Why it build for Android ARM architecture?",[10,261,262,263,266],{},"After deliberate debugging on the deployment setting page, I found out that I was only updated the ",[61,264,265],{},"Production"," environment. There was an environment select input that I missed 😅",[268,269,270,276],"image-figure",{},[10,271,272],{},[273,274],"img",{"alt":74,"src":275},"\u002Fimages\u002Falabaster-themes-2026-q3-update\u002Fcloudflare-pages-dashboard.png",[277,278,279],"template",{"v-slot:caption":74},[10,280,281],{},"I forgot to select that Choose Environment to Preview",[10,283,284,285,288],{},"I knew that it was still using Node.js version 22 from the error log and I was still didn't get why it wasn't changed although I have defined the ",[32,286,287],{},"NODE_VERSION"," environment variable.",[10,290,291,292,294,295,297],{},"After I defined ",[32,293,287],{}," environment variable in ",[61,296,63],{}," deployment environment, I retry the build process and this time build process was success.",[20,299,301],{"id":300},"missed-merge-request","Missed Merge Request",[10,303,304,305,314,315,320],{},"A GitLab user ",[306,307,311],"a",{"href":308,"rel":309},"https:\u002F\u002Fgitlab.com\u002FYesJustWolf",[310],"nofollow",[32,312,313],{},"@YesJustWolf"," submitted ",[306,316,319],{"href":317,"rel":318},"https:\u002F\u002Fgitlab.com\u002Ffindrakecil\u002Falabaster-themes\u002F-\u002Fmerge_requests\u002F1",[310],"a merge request"," to Alabaster Themes repository 4 months ago and I didn't know it 🤦🏻.",[10,322,323,324,327,328,331],{},"I realized it when I want to merge ",[61,325,326],{},"2026 Q3 Update"," branch into ",[32,329,330],{},"main"," branch, there was already one merge request count. I opened it and shocked that it was submitted months ago and I didn't know anything about it. No notification on GitLab and on my email. Maybe I was skipped it 🤷🏻.",[10,333,334,335,340],{},"Turns out that I discovered his theme on June, 2026 and added it into the collection without knowing that he already submit merge request for it months ago. You can see it in this ",[306,336,339],{"href":337,"rel":338},"https:\u002F\u002Fgitlab.com\u002Ffindrakecil\u002Falabaster-themes\u002F-\u002Fcommit\u002F99898e69063eb4cbe0fa981783b889e1d0f9836d",[310],"commit",".",[10,342,343],{},"I feel bad for him and close his merge request with an apology. I'll make sure this won't happen again in the future 😅",[20,345,347],{"id":346},"try-alabaster","Try Alabaster",[10,349,350,351,340],{},"If you are looking for a clean and minimal syntax highligting theme or color scheme for your IDE, text editor, or terminal, try Alabaster. Get it for your favorite app on the ",[306,352,355],{"href":353,"rel":354},"https:\u002F\u002Falabaster-themes.pages.dev",[310],"Alabaster Themes website",[357,358,359],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":74,"searchDepth":87,"depth":87,"links":361},[362,363,364,365],{"id":22,"depth":87,"text":23},{"id":49,"depth":87,"text":50},{"id":300,"depth":87,"text":301},{"id":346,"depth":87,"text":347},"2026-08-27","Node.js packages update, failed deployment, and missed merge request.","md",null,{},true,"\u002Fblog\u002Falabaster-themes-2026-q3-update",{"title":5,"description":367},{"loc":372},"blog\u002Falabaster-themes-2026-q3-update","25rCpE5QBmybH7IGXkG0mIk7cTy8-TUAn4oJC4oi7kk",1788633297046]