From b4fbaba77d4fcf15b1921b3b98f89a5f511a7a75 Mon Sep 17 00:00:00 2001 From: Evan Vetere Date: Sat, 31 Oct 2026 21:32:47 -0400 Subject: [PATCH] chore: Build the CMS on Node 26 Move CI to Node 26, the current LTS line, and let the engines range admit it. Strapi 5.59 already supports Node 20 through 26. Key features/changes: - better-sqlite3 11.3.0 fails to compile on Node 26, whose V8 drops Object::GetPrototype; 12.11.1 ships a Node 26 prebuild - .nvmrc moves to 26, so CI builds on it - engines widens to 26 and keeps the 22.19 floor, so a host still on Node 22 or 24 keeps deploying On Node 22 and Node 26, npm ci, lint and the production build pass, and a started server answers /_health 204 and /admin 200, matching main. --- .nvmrc | 2 +- docs/LOCAL_DEVELOPMENT.md | 2 +- package-lock.json | 73 ++++++++++++++++++++++++++++++++++++--- package.json | 4 +-- 4 files changed, 72 insertions(+), 9 deletions(-) diff --git a/.nvmrc b/.nvmrc index 2bd5a0a..6f4247a 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -22 +26 diff --git a/docs/LOCAL_DEVELOPMENT.md b/docs/LOCAL_DEVELOPMENT.md index e2fbfd9..59058b1 100644 --- a/docs/LOCAL_DEVELOPMENT.md +++ b/docs/LOCAL_DEVELOPMENT.md @@ -4,7 +4,7 @@ Guide for running the Strapi blog CMS locally before deploying to production. ## Prerequisites -- **Node.js**: 20.x–24.x +- **Node.js**: 22.19 to 26.x; CI builds on 26 - **npm**: 6.x or higher ## Quick Start diff --git a/package-lock.json b/package-lock.json index 401150c..b2f1655 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@strapi/plugin-graphql": "^5.59.0", "@strapi/plugin-users-permissions": "5.59.0", "@strapi/strapi": "5.59.0", - "better-sqlite3": "11.3.0", + "better-sqlite3": "12.11.1", "form-data": "^4.0.5", "fs-extra": "^10.0.0", "gray-matter": "^4.0.3", @@ -29,7 +29,7 @@ "eslint": "^9.39.2" }, "engines": { - "node": ">=22.19.0 <=24.x.x", + "node": ">=22.19.0 <=26.x.x", "npm": ">=6.0.0" } }, @@ -7962,6 +7962,66 @@ "node": ">=14.0.0" } }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.11.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.11.1", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.2.2", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@tybys/wasm-util": { + "version": "0.10.2", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/tslib": { + "version": "2.8.1", + "inBundle": true, + "license": "0BSD", + "optional": true + }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.3.3.tgz", @@ -9301,14 +9361,17 @@ "license": "MIT" }, "node_modules/better-sqlite3": { - "version": "11.3.0", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.3.0.tgz", - "integrity": "sha512-iHt9j8NPYF3oKCNOO5ZI4JwThjt3Z6J6XrcwG85VNMVzv1ByqrHWv5VILEbCMFWDsoHhXvQ7oC8vgRXFAKgl9w==", + "version": "12.11.1", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.11.1.tgz", + "integrity": "sha512-dq9AtApgg5PGFtBzPFSBl3HZQjHok5gaQCM6zh2Yk0aSmDCs1CbnVI8/HgASQkNKsWFpseIO9beg5xxpYhbIfA==", "hasInstallScript": true, "license": "MIT", "dependencies": { "bindings": "^1.5.0", "prebuild-install": "^7.1.1" + }, + "engines": { + "node": "20.x || 22.x || 23.x || 24.x || 25.x || 26.x" } }, "node_modules/big-integer": { diff --git a/package.json b/package.json index 202b629..62a09cc 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@strapi/plugin-graphql": "^5.59.0", "@strapi/plugin-users-permissions": "5.59.0", "@strapi/strapi": "5.59.0", - "better-sqlite3": "11.3.0", + "better-sqlite3": "12.11.1", "form-data": "^4.0.5", "fs-extra": "^10.0.0", "gray-matter": "^4.0.3", @@ -37,7 +37,7 @@ "zod": "^4.1.12" }, "engines": { - "node": ">=22.19.0 <=24.x.x", + "node": ">=22.19.0 <=26.x.x", "npm": ">=6.0.0" }, "devDependencies": {