diff --git a/frontend/scripts/verify-node-version.mjs b/frontend/scripts/verify-node-version.mjs index 494a00ab..422e3742 100644 --- a/frontend/scripts/verify-node-version.mjs +++ b/frontend/scripts/verify-node-version.mjs @@ -40,12 +40,14 @@ if (!gettingStartedGuide.includes(expectedDocumentationVersion)) { throw new Error(`docs/getting-started.md must name ${expectedDocumentationVersion}`); } // Types from a newer Node major type-check APIs this runtime lacks. -const nodeTypesMajor = frontendPackage.devDependencies?.["@types/node"] - ?.replace(/^[\^~]/, "") - .split(".")[0]; +// The lockfile's resolved version is the truth a range, alias, or dependencies entry resolves to. +const nodeTypesMajor = + frontendLockfile.packages?.["node_modules/@types/node"]?.version?.split(".")[0]; const runtimeMajor = canonicalNodeVersion.split(".")[0]; if (nodeTypesMajor !== undefined && nodeTypesMajor !== runtimeMajor) { - throw new Error(`frontend/package.json @types/node must stay on the Node ${runtimeMajor} major`); + throw new Error( + `frontend @types/node resolves to major ${nodeTypesMajor}; it must stay on the Node ${runtimeMajor} major`, + ); } console.log(`Node ${canonicalNodeVersion} projections are synchronized.`);