What are your favourite npm packages?

(Frédéric Harper) #1

When you navigate to the npm website or use the cli to search for a solution to your problem, you have access to nearly 900K packages, which is amazing. Obviously, nobody uses that many, but I think that the power of being able to find what you need, when you need it, is of great help in our day-to-day job.

Long story short, I’m always looking to learn about interesting packages, and maybe even feature some of them in our npm Weekly newsletter. So here is my ask: what are your favourite ones? I want you to think out of the box to find some gems (no Ruby pun intended) out there…

Surprise me!

(Kat Marchán) #2

One of my favorites is probably $ npx fattest-cat. It does what you’d think:

(Andrew Lisowski) #3

My co-worker and I recently open sourced https://github.com/intuit/auto-release. The API has become pretty stable now.

It generates releases based on semantic version labels on pull requests. So merging a pull request can kick off a release that includes:

  • publish to NPM
  • make a github release
  • Append to changelog.md

And the changelogs it is capable of making are preeeeety good looking (thanks lerna for the inspo) and very configurable.

Here is the docs website: https://intuit.github.io/auto-release/home.html

Other features:

  • initialize advanced options with auto init
  • create all your labels on the repo with auto create-labels
  • set a status on a PR with auto pr
  • make a comment on a PR with auto comment

Notable tech used:

  • typescript
  • command-line-args/command-line-usage - makes a really pretty CLI
  • cosmiconfig - a go to for finding RC files
  • enquirer - beautiful and highly interactive prompts
  • @octokit/rest - a great npm package for interacting with github

(Karolis Narkevicius) #4

My all time favorites in no particular order are:

  • bull - redis based job and message queue
  • axios - classic
  • react - <3
  • preact - when you need something smaller
  • nodemon - always (this should be a node feature, am I rite??)
  • np - beautiful package for publishing to npm
  • standard - join the dark side
  • ava - a modern mocha, self contained, simple, test runner of choice
  • nyc - test coverage
  • knex - SQL database wrapper
  • space-router - clientside router, I wrote it…
  • tiny-atom - clientside state management, I wrote it…
  • express - still the leader
  • fastify - a new express?
  • @feathersjs/feathers - the Rails of JavaScript (will be one day), realtime web framework
  • cashcow - just because of the implementation…

There are probably many more, but hopefully there’s something interesting here ^.

(Could only put 5 links in the post, so linked the least known packages)

(Katy Elizabeth) #5

hyper-aww - because cats

(Alec Larson) #6

Just a few of my recent favorites:

  • immer - “Create the next immutable state by mutating the current one.”
  • meta - For mono repos, where each package has its own git history. :exploding_head:And it has plugins!
  • yalc - “Better workflow than npm/yarn link for package authors.”
  • prettier-tslint - Prettier meets TSLint. Soooo good. :blush:
  • ee-ts - “Type-safe, isomorphic EventEmitter class”

(Kat Marchán) #7

I used to work with the author of feathers! I was also a very early user! I’m so glad to see it getting more attention.

(Frédéric Harper) #8

You got me at :cat: !

(Frédéric Harper) #9

That looks like a great tool, I’ll give it a closer look. Thanks for sharing with us @hipstersmoothie

(Frédéric Harper) #10

Thanks a lot for sharing those: I need to check some of them I don’t know!

It’s a limitation since you are a new user: once you reach the trust level 1, you won’t have that limitation. In the meantime, I gave myself the right to add links to missing one: I hope it’s fine with you.

(Frédéric Harper) #11

Is there any other valuable reason!?

On another note, I didn’t know Hyper: I will definitely try it (no, not just because I can have cute cats in my background… or maybe).

(Frédéric Harper) #12

Great choices, thanks for sharing @aleclarson!

(EGOIST) #13

(Alec Larson) #14

These are great ones. Especially semantic-release, jest, and prettier. :innocent:

A couple others:

  • husky - “Git hooks made easy”
  • pnpm - “Fast, disk space efficient package manager”
  • typestyle - The best CSS-in-TS library I’ve seen so far
  • reframe - Any-stack framework focused on ejectable plugins (not yet tried this)
  • microbundle - “Zero-config library bundler (powered by Rollup)”
  • sucrase - Fast transpiler for JSX, TypeScript, Flow, and ES2015+ (has a Jest plugin)

(Kat Marchán) #15

pnpm is great! And the devs are great folks. They’ve been a huge inspiration for modern npm and I’m sure they’ll continue that tradition going forward. :+1:t3::+1:t3::+1:t3:

(Frédéric Harper) #16

That is a good list. I gave myself permission to add the links to those, and you are right, there are many amazing packages out there!

(Frédéric Harper) #17

I didn’t know typestyle, I will give it a closer look. Thanks for sharing your list @aleclarson!

(Vitor Luiz Cavalcanti) #18

My TOP 3:

  • bili - For abstracting Rollup and being in almost all my libraries.
  • ava - The simplest, cleanest and fastest test library.
  • esm - I can’t forget it for providing ESM support on Node.js.

(Frédéric Harper) #19

Thanks for the suggestion @VitorLuizC, I didn’t know bili!

(Chris Arnesen) #20
  • typescript: 110%
  • aws-sdk: As a web developer who often ends up wearing the “DevOps” hat, I use aws-sdk and Node.js to automate the deployment of sites and services to the AWS cloud. It’s great to have the DevOps tech stack be the same one that’s being used for application development.