nodejs / corepack

Zero-runtime-dependency package acting as bridge between Node projects and their package managers
MIT License
2.31k stars 146 forks source link

Validation failure should be configurable #405

Open GeoffreyBooth opened 4 months ago

GeoffreyBooth commented 4 months ago

As a project author, I want to control what happens when the developer uses a package manager that fails validation, either because it’s the wrong package manager or a version that’s outside of the defined range:

Split off from #402.

arcanis commented 4 months ago

It can be configured:

COREPACK_ENABLE_STRICT can be set to 0 to prevent Corepack from throwing error if the package manager does not correspond to the one defined for the current project. This means that if a user is using the package manager specified in the current project, it will use the version specified by the project's packageManager field. But if the user is using other package manager different from the one specified for the current project, it will use the system-wide package manager version.

All configuration settings are set through the environment.

GeoffreyBooth commented 4 months ago

It should be configurable in package.json, like engines strict is. I can't control what environment variables my teammates have set.

arcanis commented 4 months ago

That seems fair, you're welcome to open a PR prototyping this. To be clear, this doesn't have anything to do with removing packageManager, though.

GeoffreyBooth commented 4 months ago

this doesn't have anything to do with removing packageManager, though.

It does unless your implementation involves adding several top-level fields to package.json. I think all Corepack configuration should be scoped under one field.