NPM vs Yarn Cheat Sheet

Gant Laborde
Red Shift
Published in
4 min readOct 12, 2016

--

Okay, so you’ve heard about this new JavaScript package manager called yarn, installed it with npm i -g yarn, and now you want to know how to use it? For the most part if you know NPM, you’re already set! Here are the key notes for switching.

👍 Feel free to bookmark this article, as it will update often as yarn grows.

Cheat Sheet — What you need to know

  • npm install === yarn
    Install is the default behavior.
  • npm install taco --save === yarn add taco
    The Taco package is saved to your package.jsonimmediately.
  • npm uninstall taco --save === yarn remove taco
    —-savecan be defaulted in NPM by npm config set save true but this is non-obvious to most developers. Adding and removing from package.json is default in Yarn.
  • npm install taco --save-dev === yarn add taco --dev
  • npm update --save === yarn upgrade
    Great call on upgrade vs update, since that is exactly what it is doing! Version number moves, upgrade is happening!
    *WARNING* npm update --save seems to be kinda broken in 3.11
  • npm install taco@latest --save === yarn add taco
  • npm install taco --global === yarn global add taco
    As always, use global flag with care.

You can use this to use yarn to update itself with yarn self-update

What you already know about yarn

The packages are the same as on the NPM registry. Yarn is basically a new installer, where NPM structure and registry is the same.

  • npm init === yarn init
  • npm link === yarn link
  • npm outdated === yarn outdated
  • npm publish === yarn publish
  • npm run === yarn run
  • npm cache clean === yarn cache clean
  • npm login === yarn login (and logout)
  • npm test === yarn test
  • npm install --production === yarn --production

Things yarn has that NPM doesn’t

I’m skipping the items that they warn against using like yarn clean

  • yarn licenses ls — Allows you to inspect the licenses of your dependencies
  • yarn licenses generate-disclaimer — Automatically create your license dependency disclaimer
  • yarn why taco — Identify why ‘taco’ package is installed, detailing which other packages depend upon it (thanks Olivier Combe).
  • ⬆️ Emojis
  • Speed 🏃⌁
  • Automatic shrinkwrap with the yarn lockfile
  • Security-centric design
  • yarn upgrade-interactive — Allows you to selectively upgrade specific packages in a simple way

Things NPM has that yarn doesn’t

  • npm xmas === **NO EQUIVALENT**
  • npm visnup === **NO EQUIVALENT**

MOAR!

Here’s a printable version of this cheat sheet, special thanks to Justin Huskey

https://infinite.red/files/yarn.pdf

Yarn spools worth reading:

Continued education

Misc

About Gant

Gant Laborde is Technical Lead at Infinite Red (⚙ web and mobile app dev ⚙), published author, adjunct professor, public speaker, and mad-scientist in training. Read the writings of Gant and his co-workers in our Red Shift publication. If you’re looking to discuss nerdy tech, he’s all ears. If you’ve got a conference tech, he’s happy to present.

View half-witty, half-groan technical tweets with @GantLaborde on Twitter, and follow him on Medium and GitHub.

Interested in learning how to bring AI and Machine Learning to web with TensorFlow.js?

JavaScript lets you create front-end websites that can leverage the power of AI directly on the browser. Learn from scratch with this book.

Reserve your copy of Learning Tensorflow.js on Amazon

code = developer + coffee;

--

--

Software Consultant, Adjunct Professor, Published Author, Award Winning Speaker, Mentor, Organizer and Immature Nerd :D — Lately full of React Native Tech