An opinionated list of resources for JavaScript and Node.js development.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README-es.md
README.md

README.md

JavaScript and Node.js tooling

Table of Contents generated with DocToc

An opinionated list of resources for JavaScript and Node.js development. You can find the Spanish version here.

Editor

There're very good options with syntax highlighting and support for plugins:

The last option, Cloud9, it's a web-based editor but it definitely deserves a try.

Sublime Text 3

I personally prefer Sublime because it's lightweight and highly configurable. You can add a Package Control plugin to install any other plugin to Sublime by pressing Ctrl+Shift+p.

IDE

I haven't used any IDE while working on Node projects, but I have tried and would recommend Webstorm. Keep in mind that will require much more memory than any editor mentioned before.

Using different versions of Node

Is often useful to have multi-version support of Node because there are some projects that might work on newer releases but not in 0.10 for example, or vice versa. NVM is a great tool for that and it also has support for io.js.

Linter

Forget about manually checking all the parenthesis you open or even worst, having to deal with them as your process gets executed. Two good options are JSHint and ESLint. I personally prefer ESLint because it offers a more granular configuration.

Adding your linter to Sublime Text

Install the package (see Sublime Text 3) SublimeLinter and then install the package of your linter (SublimeLinter-jshint or SublimeLinter-contrib-eslint). Might have to restart your editor for the changes to take effect.

Tabs and format

Checking for spaces before or after every parenthesis is a waste of time. Same goes for manually indenting any new line if your code, even if it's copy & pasted. JavaScript Beautify is a great tool for doing that automatically and is also configurable. Install the package in Sublime Text and after that you will be able to run it by pressing Ctrl+Alt+f.

Process Manager

If some uncaught exception fires in your application, you will probably don't want to start the application again manually. The following options will watch your application process and restart it if something goes wrong:

In the case of supervisor, not only will restart the application if an uncaught exception occurs, but will also restart your application if you modify any server-side file for the modifications to take effect.

The first three options are simple and they only try to focus on a single feature, while PM2 offers a lot more functionalities like CPU monitoring, log facilities and load balancing.

Debugging

If you're familiar with gdb, you will find the native debugging interface somewhat familiar (node debug app.js). For graphical debugging interfaces you could use node-inspector or iron-node. While node-inspector has been around for a while, iron-node is considerably new, but most important, they have different approaches.

node-inspector

node-inspector will open up a Chrome tab in which you can use the Chrome Dev Tools to debug your application. It's important to notice that will run your process in debug mode and attach to it.

iron-node

iron-node is using electron, which gives an impression of being faster to load up. Because of that, it will run with its own Node installation (io.js) and as a result the compatibility with native modules can be a little bit tricky.

Platforms as a Service

Many solutions include several instances with a free account like:

Continuous Integration

There are several options that include free services to Open Source projects such as:


Contributions and suggestions are welcome! Just open an issue or a pull request.