@vercel/build-utils
Advanced tools
Comparing version 8.3.8 to 8.3.9
# @vercel/build-utils | ||
## 8.3.9 | ||
### Patch Changes | ||
- Provide help when users get ERR_PNPM_UNSUPPORTED_ENGINE errors without corepack ([#12034](https://github.com/vercel/vercel/pull/12034)) | ||
- Fix package-manager-warning-1 to happen only happen in correct cases ([#12050](https://github.com/vercel/vercel/pull/12050)) | ||
## 8.3.8 | ||
@@ -4,0 +12,0 @@ |
@@ -127,2 +127,3 @@ /// <reference types="node" /> | ||
detectedPackageManager: string; | ||
pnpmVersionRange: string; | ||
} | { | ||
@@ -132,2 +133,13 @@ path: undefined; | ||
detectedPackageManager: string; | ||
pnpmVersionRange: string; | ||
} | { | ||
path: string; | ||
detectedLockfile: string; | ||
detectedPackageManager: string; | ||
pnpmVersionRange?: undefined; | ||
} | { | ||
path: undefined; | ||
detectedLockfile: string; | ||
detectedPackageManager: string; | ||
pnpmVersionRange?: undefined; | ||
} | undefined; | ||
@@ -134,0 +146,0 @@ /** |
@@ -527,5 +527,11 @@ "use strict"; | ||
if (!corepackPackageManager || !corepackEnabled) { | ||
if (cliType === "pnpm" && packageJsonEngines?.pnpm) { | ||
checkEnginesPnpmAgainstDetected( | ||
packageJsonEngines.pnpm, | ||
detectedPackageManger | ||
); | ||
} | ||
return detectedPackageManger ?? NO_OVERRIDE; | ||
} | ||
if (!validateCorepackPackageManager( | ||
validateCorepackPackageManager( | ||
cliType, | ||
@@ -535,9 +541,17 @@ lockfileVersion, | ||
packageJsonEngines?.pnpm | ||
)) { | ||
console.warn( | ||
`WARN [package-manager-warning-1] Detected lockfile "${lockfileVersion}" which is not compatible with the intended corepack package manager "${corepackPackageManager}". Update your lockfile or change to a compatible corepack version.` | ||
); | ||
} | ||
); | ||
return NO_OVERRIDE; | ||
} | ||
function checkEnginesPnpmAgainstDetected(enginesPnpm, detectedPackageManger) { | ||
if (detectedPackageManger?.pnpmVersionRange && (0, import_semver.validRange)(detectedPackageManger.pnpmVersionRange) && (0, import_semver.validRange)(enginesPnpm)) { | ||
if (!(0, import_semver.intersects)(detectedPackageManger.pnpmVersionRange, enginesPnpm)) { | ||
throw new Error( | ||
`Detected pnpm "${detectedPackageManger.pnpmVersionRange}" is not compatible with the engines.pnpm "${enginesPnpm}" in your package.json. Either enable corepack with a valid package.json#packageManager value (https://vercel.com/docs/deployments/configure-a-build#corepack) or remove your package.json#engines.pnpm.` | ||
); | ||
} | ||
} | ||
console.warn( | ||
`Using package.json#engines.pnpm without corepack and package.json#packageManager could lead to failed builds with ERR_PNPM_UNSUPPORTED_ENGINE. Learn more: https://vercel.com/docs/errors/error-list#pnpm-engine-unsupported` | ||
); | ||
} | ||
function validateCorepackPackageManager(cliType, lockfileVersion, corepackPackageManager, enginesPnpmVersionRange) { | ||
@@ -551,3 +565,3 @@ const validatedCorepackPackageManager = validateVersionSpecifier( | ||
); | ||
return false; | ||
return; | ||
} | ||
@@ -558,3 +572,3 @@ if (cliType !== validatedCorepackPackageManager.packageName) { | ||
); | ||
return false; | ||
return; | ||
} | ||
@@ -573,3 +587,3 @@ if (cliType === "pnpm" && enginesPnpmVersionRange) { | ||
if (lockfileVersion) { | ||
return validLockfileForPackageManager( | ||
const lockfileValid = validLockfileForPackageManager( | ||
cliType, | ||
@@ -579,4 +593,7 @@ lockfileVersion, | ||
); | ||
} else { | ||
return true; | ||
if (!lockfileValid) { | ||
console.warn( | ||
`WARN [package-manager-warning-1] Detected lockfile "${lockfileVersion}" which is not compatible with the intended corepack package manager "${corepackPackageManager}". Update your lockfile or change to a compatible corepack version.` | ||
); | ||
} | ||
} | ||
@@ -617,3 +634,4 @@ } | ||
detectedLockfile: "pnpm-lock.yaml", | ||
detectedPackageManager: "pnpm@7.x" | ||
detectedPackageManager: "pnpm@7.x", | ||
pnpmVersionRange: "7.x" | ||
}; | ||
@@ -624,3 +642,4 @@ case "pnpm 8": | ||
detectedLockfile: "pnpm-lock.yaml", | ||
detectedPackageManager: "pnpm@8.x" | ||
detectedPackageManager: "pnpm@8.x", | ||
pnpmVersionRange: "8.x" | ||
}; | ||
@@ -631,3 +650,4 @@ case "pnpm 9": | ||
detectedLockfile: "pnpm-lock.yaml", | ||
detectedPackageManager: "pnpm@9.x" | ||
detectedPackageManager: "pnpm@9.x", | ||
pnpmVersionRange: "9.x" | ||
}; | ||
@@ -639,3 +659,4 @@ case "pnpm 6": | ||
detectedLockfile: "pnpm-lock.yaml", | ||
detectedPackageManager: "pnpm@6.x" | ||
detectedPackageManager: "pnpm@6.x", | ||
pnpmVersionRange: "6.x" | ||
}; | ||
@@ -642,0 +663,0 @@ default: |
{ | ||
"name": "@vercel/build-utils", | ||
"version": "8.3.8", | ||
"version": "8.3.9", | ||
"license": "Apache-2.0", | ||
@@ -5,0 +5,0 @@ "main": "./dist/index.js", |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1233206
27827