Table of Contents generated with DocToc
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
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.
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-contrib-eslint). Might have to restart your editor for the changes to take effect.
Tabs and format
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.
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 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 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:
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.