Corepack Basics
Corepack
Have you heard about corepack recently? Are you curious about what this thing is? Then this post is for you. Corepack is an experimental feature of Node that is meant to give you more control over the package manager versions used inside your Node projects. Corepack will help out with a couple of key developer workflows:
- Project setups for new project contributors
- Package manager version control
Corepack has been an experimental feature since Node 14 and still is experimental for the latest version of Node. It provides a super simple API to ensure you and all of your project contributors and/or teammates are using the same version of your intended package manager.
At a high level, this is how it works:
- A
packageManagerproperty will be placed in yourpackage.jsonwhich will indicate which package manager and what version of it that you should always be using - Node will expose a binary proxy inside your project
- When you use your intended package manager inside your project, you will instead be referencing the binary installed
- When you are outside of your project directory, the package manager version that is installed on your system will be used
Tutorial
Let's go through some basic steps to see it in action.
- Make sure you have at least Node 14 running on your machine:
nvm use 14 - Run
corepack enableto set up all symlinks in your environment - Create and change to a new directory and run
npm init - Add a
packageManagerproperty in yourpackage.jsonand let's set it topnpm@7.17.0 - Run
corepack prepareto download the desired package manager and version - Running a quick test with
pnpm -vshould display7.17.0
And that's it! Every time you are inside that directory now, pnpm will always reference that same version.