Skip to content

An opinionated list of resources for JavaScript and Node.js development.

License

Notifications You must be signed in to change notification settings

a0viedo/node-tooling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

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.

About

An opinionated list of resources for JavaScript and Node.js development.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages