A list of NPM Packages that have proven helpful to me

Jaaq Jorissen
6 min readFeb 20, 2016

asap: Execute a task as soon as possible. Useful when dealing with blocking event systems.

autoprefixer: PostCSS plugin that will automatically add browser-specific CSS prefixes.

aws-sdk: SDK to work with Amazon AWS

babel-cli: Use the Babel library to transpile your code and write ES6 and experimental ES7

also see: babel-core,babel-plugin-transform-decorators-legacy,babel-plugin-transform-es2015-modules-commonjs, babel-preset-es2015, babel-preset-react, babel-preset-stage-0

babel-eslint: Allows linting of code by ESLint written for the Babel transpiler

babel-loader: Use babel and all of its functionality as a Webpack loader

bcrypt-nodejs: JS implementation of BCrypt. Allows you to e.g. encrypt/salt password before saving them.

bluebird: Promise library for JS with up to 5x faster performance than native promises. Allows you to promisify lots of other libraries.

body-parser: ExpressJS plugin that allows you to send responses with a body e.g. JSON

bookshelf: Lightweight ORM built on top of Knex that allows you to easily define your database models. Works great together with checkit for validation.

bootstrap-sass: Implementation of bootstrap written in SASS

bootstrap-slider: Pretty HTML sliders using the bootstrap style.

c3: c3 is a JS library that is built on top of d3 that allows you to easily display pretty charts and graphs

chai: Chai is an assertion library that allows you to write clean, readable tests.

checkit: Checkit is built by the same guy who brought us bookshelf, and adds default and custom validation to your database models, with readable errors.

cheerio: Sort of a headless browser that allows your server to visit a URL, and then query it using a jQuery-like syntax. Great for scraping data.

classnames: This neat little library allows you to use objects to define CSS classes, especially useful for conditionally attaching CSS classes to HTML elements in React.

concat-stream: Concatenate all buffers from a stream in a single object, with complete and error handler.

connect-multiparty: Useful when dealing with uploads that use the multipart API

connect-redis: A session store running on redis, for express-sessions

cookie-parser: Analyses your express requests for cookie headers and parses them for ease-of-use.

css-loader: CSS loader for Webpack

d3: Data visualisation library that uses the HTML Canvas, CSS and SVG

debug: Great little tool that allows you to do logging in your terminal with different colors per .js file, flags for different environments, millisecond diffs and much more.

enzyme: Testing utility focused on react components that allows you to test the render functions using a JQuery-like syntax.

eslint: Codelinter for JS. Who doesn’t like clean code? Tool that is infinitely customisable but also has a bunch of presets available so you don’t have to do all the hard work.

also see: eslint-config-airbnb, eslint-plugin-react”

express: Express is a great, fast and lightweight web framework for node.

express-graphql: Middleware for express thats servers GraphQL over http.

express-session: Middleware for express that adds support for sessions.

extract-text-webpack-plugin: Webpack plugin that allows you to extract CSS from your bundle.

file-loader: Webpack plugin that allows Webpack to load files. Useful for e.g. loading fonts with exotic extensions.

firebase: Library for interacting with Firebase API

fixed-data-table: React component from Facebook that allows you to easily display tables that support fixed columns and infinite scrolling.

flux: Flux is a library from Facebook that provides your application with logic for you data. Flux is an ‘Application Architecture for React’ that relies on Uni-directional data flow. Works wonders in combination with immutable.js and react-addons-pure-render-mixin.

font-awesome: Neat icons.

graphql: Facebook’s paradigm-shifting query language that can wrap around any existing API/Database and present your data in a very readable format, where the query defines the response structure.

helmet: Secure your express application a bit more using helmet.

hipchatter: If your companies uses hipchat, this tool allows you to send notifications straight from your server to your hipchat channel.

history: Manage history in browsers. Hard dependency for react-router.

http-proxy: Useful for proxying e.g. Express requests to another http endpoint.

imagemin: Library that allows minification of images

immutable: Library from Facebook that allows you to create immutable data objects like Maps, Lists etc. Immutable data encourages you to writes cleaner code that is more reusable. Functional and pure!

imports-loader: Webpack loader that allows you to inject required variables on a per-module-basis.

istanbul: Code coverage tool to analyse how much of your code is tested.

see also: babel-istanbul

jade: very minimalistic HTML templating engine. Useful for single page apps that don’t require a lot of complex HTML.

jsdom: JSDom is a headless browser written in JS that can be used e.g. for scraping data. Another (better, imho) example of this is cheerio

json-loader: Webpack loader that allows you to require JSON files straight in your JS files.

jwt-simple: Library that allows you to encode/decode JSON Web Tokens. Works great for securing API endpoints that use a token approach.

keymirror: Neat little library from facebook that creates an object with values that are equal to it’s properties. Useful when debugging constants in your console.

knex: Easily create databases on a variety of SQL db’s, with support for migrations, seeding and building queries.

lodash: World-famous JS utilty library that packs a whole bunch of functionality.

method-override: Lets you use HTTP verbs such as PUT or DELETE in places where the client doesn’t support it.

mocha: Javascript Test framework.

moment: Library that makes working with Dates a breeze

morgan: Middleware for express that automatically logs all of your HTTP activity

multer: Middleware for express to handle requests that use the Multipart API

nconf: Nice little utility that allows to hierarchically load your application configuration throug e.g. ENV vars, JSON config files etc.

node-mocks-http: Mock http requests. Useful for testing express applications.

node-notifier: Neat utility that adds OS specific notifications to your node application.

node-sass: Compile SASS to CSS using node.

node-uuid: Simple and fast generation of standardized UUID’s

nodemon: nodemon allows you to monitor your filesystem for changes, and will automatically restart your node process when changes are detected.

numeral: Small utility that makes displaying and formatting numbers (e.g. percentages / currencies) a breeze.

object-assign: Polyfill for the ES6Object.assign() method.

parallelshell: Parallelshell allows you to run multiple shell commands at the same time, and also exit them at the same time.

parse-redis-url: Small utility that parses a redis url to an object with all the properties (host, password, etc.)

passport: Authentication middleware for Express with hundreds of available strategies (Basic, Google, Facebook, etc.)

passport-local: Passport strategy for basic username/password authentication.

pg: Postgres client for node.js

pre-push: Easily add pre-push hooks to your project. This will run npm commands before allowing a git push.

qs: parse Querystrings to JS Objects.

random-word-generator: Neat utility that generates random, but pronouncable, words.

react: Javascript library for building user interfaces and my weapon of choice for creating snappy interfaces.

also see: react-dom

react-addons-pure-render-mixin: React decorator that will implement the shouldComponentUpdate function and will only udpate the view when props/state have deeply changed.

react-autosuggest: React component that implements suggestions while typing in an input field.

react-bootstrap: The famous bootstrap collection of UI elements, written as React components.

react-bootstrap-validation: Library that adds validation to react-bootstrap components.

react-datepicker: React component that is a minimalistic and functional datepicker.

react-hot-loader: Library by Dan Abramov that allows hot reloading of React components.

react-router: Routing library for React. Enables you to link UI Components to your URL slugs.

redis: Blazing fast database for storing key/value pairs.

request: Make HTTP requests from node.js

sass-loader: Webpack loader that allows you to load SASS files.

serve-favicon: Middleware that handles the serving of a favicon.ico

sinon: Adds some extra functionality to your tests like stubs and spies.

source-map: Generate source-maps.

stockscraper: Scraper for Google Finance data.

style-loader: Webpack loader for loading CSS files.

superagent: Handling HTTP requests and HTTP verbs is a breeze with superagent.

supertest: Test utility for HTTP requests powered by superagent

utf-8-validate: Validate websocket buffers against the UTF-8 standard.

webpack: Webpack is a javascript bundler and module loader on steroids. Javascript’s swiss army knife and my weapon of choice.

webpack-dev-server: Servers your webpack files on a mini-express server.

xml2js: Very straightforwards XML to JS converter.

yahoo-finance: Provides an easy to use interface to the Yahoo finance API.

--

--