· 3 min read
Never Use the WRONG Package Manager Again!
Not sure if this project uses npm, yarn or pnpm... well, let's just use ni
yarn, what does this project use? Or maybe it’s pnpm? Or Bun? Well, let’s just use
Is this a new package manager? No, no, don’t worry ^^’
ni is a simple tool that will try to identify which package manager is in use in the current project, and then run the corresponding command.
How does it work?
From the docs:
ni assumes that you work with lockfiles (and you should)
Before it runs, it will detect your yarn.lock / pnpm-lock.yaml / package-lock.json / bun.lockb to know current package manager (or packageManager field in your packages.json if specified), and runs the corresponding commands.
In case you were wondering if that weird
package-lock.json file that appears to change unexpectedly on
npm install is needed or not, it indeed is!
I recorded a short demo to show how cool this tool is, you can watch it here:
Assuming you already have at least npm globally installed:
npm i -g @antfu/ni
You just opened a new project and you’re ready to install the dependencies. Just type
ni and you’re good to go! In the video demo I show it in a real use case.
Here’s a description of all currently supported commands. In case something changes and this gets outdated, you can always check the full list on the project’s README.
ni - Install dependencies
You can run it with no arguments to get the full dependencies, or with a package name to install it.
ni ni react
You can also set the
-D flag to install as a dev dependency.
ni -D prettier
nr - Run scripts
You can run commands in your package.json scripts.
nr start nr build
nlx - Download and execute a package
nlx gitignore node
Fun fact, it was originally called
nx but then it was renamed to
nix… and then again to
nlx, to avoid confusion with other existing tools.
nu - Upgrade dependencies
Upgrades all your packages to the latest version.
nun - Uninstall dependencies
This will remove your package from
package.json and uninstall it from
nci - Clean install dependencies
This will remove your
node_modules folder and install all your dependencies again.
na - Alias for the current manager
npm… when you don’t know you’re using npm!
na run test
It will use the correct package manager to forward the command.
As an Open Source contributor it happens quite often to switch between projects that use different package managers. This tool is a great way to avoid having to remember which one is used where.
Even if most of the time npm is the right one, just typing ni or nr is faster anyway.
I hope you’ll find this useful too!
Hello! My name is Leonardo and as you might have noticed, I like to talk about Web Development and Open Source!
I use GitHub every day and my favourite editor is Visual Studio Code... this might influence a little bit my conent! :D
If you like what I do, you should have a look at my YouTube Channel!
Let's get in touch, feel free to send me a DM on Twitter!