Announcing npm7

It's been a very long and crazy ride but I'm happy to share that the project I've been working so hard since I joined the npm team more than an year ago is finally out! npm7 is the new major version of the npm cli 😍

TLDR; npm install -g npm@7

What's new?

First let's highlight the major additions:
workspaces! finally the top-requested feature from our userbase makes its way into a stable release line 🎉
auto-installing peer-dependencies again 📦
Improving DX

There are some smaller changes/additions/tweaks that will hopefully continue to help improving the user experience, such as:
new npm exec command - same as npx that now lives in the cli 😁
a new package-lock format and support to install from yarn.lock files 🚀
improved npm audit output! 😎
new update notification system for the npm cli
ability to install a git/GH pkg from a PR: npm i user/project#pull/123
less verbose install output
skip pre/post scripts when using --ignore-scripts
new system to cache node_modules data that makes npm ls much faster
npm ls now defaults to top-level deps only, to see the entire tree you can now run npm ls --all
slightly improved npm fund output, highlighting funding urls and properly nesting deps
And much, much more!

Clean up work

In reality npm7 is the long due refactor/clean up of the npm cli and it spawns a couple of very important internal packages to our ecosystem which are now the standard Programmatic APIs for npm:
I'm really excited to see what this will enable in the community, for the first time it's going to be a trivial thing to require('@npmcli/arborist') and have the same npm install experience from within userland scripts without the need of spawning any subprocesses 🤩

It's also worth mentioning that a lot of the work that went into this version is making sure every line of code and functionality is well-tested and stable so that we can better iterate on new features and bug fixes moving forward 😊
More?

There are also new options/flags that goes along with some of the new features such as --legacy-peer-deps and --strict-peer-deps that help tweak the behavior of installing peer deps, npm ls --all to see all installed deps since the default is now show top-level only, etc

The team will be working hard on adding more tests and fixing any bugs that managed to slip through our beta test period 😄 Feel free to reach out to us in our GitHub issue tracker that now have the best up-to-date links on how to report bugs, propose new features or get help.

You can also read more about the release in the official channels:
npm blog post
GitHub blog post
⬇️ Get it now

The npm7 is going to be a part of the upcoming node15 release but if you want to get it first, you can install it now with:

npm install -g npm@7

Happy dependency-installing everyone!

Post a Comment