@@ -266,8 +266,9 @@ export async function detectPackageEnvironment({
266
266
let pkgMinAgentVersion = minSupportedAgentVersion
267
267
let pkgMinNodeVersion = minSupportedNodeVersion
268
268
if ( pkgJson ) {
269
- const agentRange = pkgJson . engines ?. [ agent ]
270
- const nodeRange = pkgJson . engines ?. [ 'node' ]
269
+ const { engines } = pkgJson
270
+ const agentRange = engines ?. [ agent ]
271
+ const nodeRange = engines ?. [ 'node' ]
271
272
if ( isNonEmptyString ( agentRange ) ) {
272
273
// Roughly check agent range as semver.coerce will strip leading
273
274
// v's, carets (^), comparators (<,<=,>,>=,=), and tildes (~).
@@ -339,8 +340,8 @@ export async function detectPackageEnvironment({
339
340
pkgPath,
340
341
pkgSupported,
341
342
pkgRequirements : {
342
- agent : pkgMinAgentVersion ,
343
- node : pkgMinNodeVersion
343
+ agent : `>= ${ pkgMinAgentVersion } ` ,
344
+ node : `>= ${ pkgMinNodeVersion } `
344
345
}
345
346
}
346
347
}
@@ -373,17 +374,31 @@ export async function detectAndValidatePackageEnvironment(
373
374
)
374
375
}
375
376
} )
377
+ const { agent, agentVersion } = details
378
+ if ( ! details . agentSupported ) {
379
+ const minVersion = constants . minimumVersionByAgent . get ( agent ) !
380
+ logger ?. fail (
381
+ cmdPrefixMessage (
382
+ cmdName ,
383
+ `Requires ${ agent } >=${ minVersion } . Current version: ${ agentVersion ?? 'unknown' } .`
384
+ )
385
+ )
386
+ return
387
+ }
376
388
if ( ! details . pkgSupported ) {
377
389
logger ?. fail (
378
- cmdPrefixMessage ( cmdName , 'No supported Node or browser range detected' )
390
+ cmdPrefixMessage (
391
+ cmdName ,
392
+ `Package engine "node" or "${ agent } " range not met`
393
+ )
379
394
)
380
395
return
381
396
}
382
- if ( details . agent === VLT ) {
397
+ if ( agent === VLT ) {
383
398
logger ?. fail (
384
399
cmdPrefixMessage (
385
400
cmdName ,
386
- `${ details . agent } does not support overrides. Soon, though ⚡`
401
+ `${ agent } does not support overrides. Soon, though ⚡`
387
402
)
388
403
)
389
404
return
@@ -401,11 +416,11 @@ export async function detectAndValidatePackageEnvironment(
401
416
logger ?. fail ( cmdPrefixMessage ( cmdName , `No ${ PACKAGE_JSON } found` ) )
402
417
return
403
418
}
404
- if ( prod && ( details . agent === BUN || details . agent === YARN_BERRY ) ) {
419
+ if ( prod && ( agent === BUN || agent === YARN_BERRY ) ) {
405
420
logger ?. fail (
406
421
cmdPrefixMessage (
407
422
cmdName ,
408
- `--prod not supported for ${ details . agent } ${ details . agentVersion ? `@${ details . agentVersion . version } ` : '' } `
423
+ `--prod not supported for ${ agent } ${ agentVersion ? `@${ agentVersion } ` : '' } `
409
424
)
410
425
)
411
426
return
0 commit comments