fix: compile native modules under pnpm 9 and pin Node 24 (#2686)

pnpm 9 ignores install scripts by default as a supply-chain defense, so
better-sqlite3 and re2 were never built, leaving pnpm db:migrate broken
with "Could not locate the bindings file". Whitelist them via
pnpm.onlyBuiltDependencies so every contributor and CI build gets the
compiled .node binaries automatically.

Also pin Node 24 via .nvmrc (matching @types/node: ^24) to prevent ABI
drift when switching nvm versions, and drop a vestigial @tsconfig/node22
devDep from packages/db that was unused (the package extends
@karakeep/tsconfig/node.json, not the @tsconfig package directly).
This commit is contained in:
Evan Simkowitz
2026-04-10 09:33:36 +01:00
committed by GitHub
parent 8a0f49757d
commit 3939536109
4 changed files with 6 additions and 5 deletions
+1
View File
@@ -0,0 +1 @@
24
+4
View File
@@ -37,6 +37,10 @@
},
"packageManager": "pnpm@9.15.9",
"pnpm": {
"onlyBuiltDependencies": [
"better-sqlite3",
"re2"
],
"patchedDependencies": {
"xcode@3.0.1": "patches/xcode@3.0.1.patch",
"playwright-extra@4.3.6": "patches/playwright-extra@4.3.6.patch",
-1
View File
@@ -28,7 +28,6 @@
},
"devDependencies": {
"@karakeep/tsconfig": "workspace:^0.1.0",
"@tsconfig/node22": "^22.0.0",
"@types/better-sqlite3": "^7.6.11",
"@vercel/ncc": "^0.38.4"
}
+1 -4
View File
@@ -1161,9 +1161,6 @@ importers:
'@karakeep/tsconfig':
specifier: workspace:^0.1.0
version: link:../../tooling/typescript
'@tsconfig/node22':
specifier: ^22.0.0
version: 22.0.2
'@types/better-sqlite3':
specifier: ^7.6.11
version: 7.6.13
@@ -10239,7 +10236,7 @@ packages:
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
deprecated: Glob versions prior to v9 are no longer supported
global-dirs@0.1.1:
resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==}