IDE and Debugger for node.js [closed] - node.js

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I am going to start building project in node.js (was working in PHP before), What is the IDE, Debugger and Helping Tools for node.js, to help improvement while coding ?

There are several IDEs which support Node.js natively:
Desktop-based IDEs
WebStorm - popular and extremely powerful IDE for coding web applications. $100 for commercial license, $50 personal, $25 academic, free for open source developers upon application approval. Can also debug Meteor.JS applications.
Komodo IDE
Cloud9 Local - You can install a local copy of cloud9 on desktop as well and work on a local directory as workspace, follow the instructions on github page. Be sure to disable incompatible plug-ins from config. It provides proper debugging as well.
Cloud-based IDEs
Cloud9 IDE - cloud-based IDE with native support for development of Node.js applications including debugging and other features.
Koding Koding offers you a free rootable VM with Node. Also you can work on the same code with your friends.
Other than these two you can use almost any code editor/IDE which simplifies JavaScript based development in general (for example with syntax highlighting, autocompletion or similar stuff) and use node with its built-in V8 debugger.

Microsoft just launch a cross platform IDE "Visual Studio Code" in Windows, Ubuntu and MacOSX. It could debug node.js. Check detail here.

Koding is another good choice. It comes preinstalled with Node.js, Vim and Emacs, has a great community of developers, among many other things. Another few notable features are:
Free virtual machine (VM) with Ubuntu, root access, apt-get, and many commonly used tools
Built-in Terminal with 256-color support
All languages, databases, and command-line tools are supported
Various file upload options such as Drag & Drop, Dropbox, Clone from Github, FTP and the ability to access them using SSH
Real-time code and terminal collaboration with integrated chat abilities

Visual Studio now supports full dev lifecycle for Node.js if you install the Node.js tools, linked below.
Allows for full debugging, intellisense, color coding, and more.
https://nodejstools.codeplex.com/

vim and unix are your IDE.
If you want debugging then there is node debug foo.js or ndb or node-inspector or use the V8 Debugger.

Another option could be Netbeans with the NodeJS tools (even though I'm not using it anymore these days since I've been using JetBrains products now to be honest).
What it gives you:
A Node project type
Clickable stack traces in the output window
A run with node action on Javascript files (and of course, the project)
Integration with Node Package Manager (npm) and a slick little UI for adding libraries
GUI for editing package.json files, and generating their standard contents
Ability to store machine-specific command-line arguments (excluded from version control if you use NetBeans' version control).
Ability to download Node's sources so the highlighted stack traces point somewhere
http://timboudreau.com/blog/read/NetBeans_Tools_for_Node_js
Also NetBeans 8.1 and 8.2 seem to have brought some features for Node.js developers (see here and here).

Eclipse is a good IDE for JavaScript.
This page https://portawiki.abnoctus.com/view/NodeIDE.html
details mixing eclipseJS with the google v8 debugger and a few node specific plugins
http://code.abnoctus.com/publish/binaries/node-launcher/
To build an IDE with support for editing JS with syntax highlights and some degree of code completion, executing node from the IDE, debugging in the IDE, unit testing with nodeunit and fetching dependencies via NPM.

I've tested several IDE's to develop and run node apps. But I'm feeling very confortable with Microsoft WebMatrix 2.0. It's a nice lightweight and free IDE that you can run Node. There's some templates for Express framework to get started. And you can run nodejs processes through IIS Express.

Nodeclipse has chromedevtools fixed for Node.js debugging.
Enide Studio 2014 comes with Nodeclipse, JSHint-eclipse, AngularJS and more plugins
(source: nodeclipse.org)
(source: nodeclipse.org)
http://www.nodeclipse.org/enide/studio/2014/

Personally, I'm partial to Cloud9's IDE though they've had a few issues lately with various upgrades, and the growing pains of online systems can be an issue.
WebStorm 4 is another option, though I haven't tried it, I did try the plugin in WS3, which wasn't too bad.
From Microsoft (of all places) there's WebMatrix 2 from Microsoft that seems to support Node.JS pretty well. I have discovered that you can actually edit node based js files within the Visual Studio 2012 beta and get intellisense/autocomplete for node scripts probably from webmatrix's developments. I've been using node as a build step for CSS/JS processing, and it's been working well for me.
Aptana Studio and others seem to be scrambling to add proper node support. Right now options are relatively limited, but getting better.

What framework are you using for the frontend? If you're already familiar with Node, you might as well try the open-source and increasingly popular Meteor.JS framework. Check out MeteorPad for literally a one-click IDE for Meteor apps.
You get a virtual machine with MongoDB on it and the Meteor server. A sample project is already loaded, and you can edit the server and client HTML, JS and CSS files. The resulting app runs in the right pane. Makes playing with Meteor super, super easy.

Node is a relatively new project so there is not widespread IDE support yet. However there actually is an online IDE called Cloud9 IDE that you might want to check out. Otherwise I suggest you use a local editor such as vim or emacs.
See how-to-debug-node-js-applications for more information on debugging.

GitHub's programmable text editor Atom has node.js integration.

Try Microsoft's https://code.visualstudio.com. Its awesome.

Facebook's Nuclide has a number of IDE-esque features including dynamic typechecking (via flow), in-code linking, auto complete, etc. It's based on GitHub's Atom so you can pick and choose Nuclide packages as you see fit.

WebStorm 3.0 does all this stuff.
It auto completes in a smart way, includes nice debugging and unit testing. It also include number of inspection for javascript, which is also pleasant.
Now RC version is available, but JetBrains assure that it'll be released soon.

I use IntelliJ's Webstorm: http://www.jetbrains.com/webstorm for it's advance auto-complete features and Node.js/NodeUnit templates.

Related

Does Visual Studio 2022 have the same ability to open a javascript/nodejs project folder in a WSL2 Linux as VS Code is able to do?

If I'm in my WSL2 Ubuntu filesystem I can simply navigate to a javascript/nodejs folder and type code . to open that project folder and thanks to VS Code's Remote extensions, I'm essentially remoting into the Linux environment and ready to code.
Now Visual Studio 2022 has been released, I was wondering if it too supports the same level of cross-platform IDE capability as VS Code?
How, for instance, when in my WSL2 Ubuntu project in Windows Terminal, can I open my javascript/nodejs project in the Linux filesystem using VS2022, or is this not supported because VS Code is the only cross-platform IDE that can do this?
So its not really possible to do how your thinking. The problem here is that you your not understanding the difference between a "Code Editor", and an "Integrated Development Environment (IDE)", which is totally understandable, as the line that separates the two has become blurred in recent years, and also a topic of debate. There was a far more explicit distinction between the 2 10-15 years ago, however, Microsoft has done a good job at separating the two, where JetBrains will release a piece of software that can be used as an IDE, but is more often than not, used as an editor, but will still call it an IDE, even though its not an IDE in a pure sense.
How is all this related to your question?
When you open your Node.js project in VSCode via the code . command, you are opening it in an editor that implements Intelli-code, as well as a wealth of other tools, but essentially, the editor, and all the tools extract the names & file extensions of your documents, parse them (usually turning much of the info into an AST, where many extensions will make use of that info to offer the various tooling capabilities/features. The point is at the end of the day, the editor just parses all of your code, gives you info, and you make any changes as needed to your code. And again, this is what your doing with code .
With Visual Studio 2022, you can't open a project with it, unless its a project type the IDE supports, and enables the IDE, to embed its-self into your project. This includes things like built in environment, built in cache, built in build system, the files needed to bootstrap its-self. With an IDE, the IDE is part of the project.
So then why does Visual Stdio 2022 work with Node?
It works with node, to create Node.js applications within a windows environment, and it offers the ability to access different Windows SDK features via Node. These are things you could never do using server-side Linux builds with Node. When you build a Cpp application for windows, you package the entire thing in a .sin file, I haven't built a windows app in node, but I know that Node also uses the .sin file build system, which requires Visual Studio & Windows SDK to do, and parts of Visual Studio/Windows to be embedded into the project, for the project to be able to work in a Windows OS, and take advantage of MS Windows features.
Long story short, V.S. Code is the right tool for what your doing, why would Microsoft invest in two identical tools any way? If you ever want to build something for Windows, or for MS mobile device using Node, you will probably want to change your environment, to VS2022.

Liferay IDE Alternatives

I am using Liferay Developer Studio for theme development and as a frontend developer, I am not impress with the tool's performance.
Below are few reasons I am looking for alternative IDE, compatible for Liferay development.
It occupies more than 75% of the memory
It slower down the whole system
I cannot use chat application while running IDE as to switch from one app to another takes irrelevant time
I use to build theme through CLI. Sometime I need to close the IDE or else it gives runtime error and doesn't build the theme.
I am sure there are many others too faced same issues, which actually makes the development slower. This question is not against the Liferay of course, it's a great enterprise level CMS tool. But yes looking for alternate IDE with best compatibility for the purpose.
Thanks in advance.
You can use Gulp and Yo to generate, build and deploy your theme or layout , and you can use Notepad ++ as editor.
Please refere to those links :
1 - LIFERAY theme generator
2 - Gulp Tasks
You can use any IDE you want. The only one difference between LiferayIDE and others IDEs is you can avoid using BladeCLI by hands.
And nothing can stop you to use another IDE, build you project with maven or gradle and then continue to develop.
If you are a front-end developer you really should use Gulp and Yo. First time you'll feel yourself confused a bit, but after short period of time you'll understand all benefits.

Can you debug Karma test runner? [duplicate]

How do I debug a Node.js server application?
Right now I'm mostly using alert debugging with print statements like this:
sys.puts(sys.inspect(someVariable));
There must be a better way to debug. I know that Google Chrome has a command-line debugger. Is this debugger available for Node.js as well?
node-inspector could save the day! Use it from any browser supporting WebSocket. Breakpoints, profiler, livecoding, etc... It is really awesome.
Install it with:
npm install -g node-inspector
Then run:
node-debug app.js
Debugging
Joyent's Guide
Debugger
Node Inspector
Visual Studio Code
Cloud9
Brackets
Profiling
node --prof ./app.js
node --prof-process ./the-generated-log-file
Heapdumps
node-heapdump with Chrome Developer Tools
Flamegraphs
0x
jam3/devtool then Chrome Developer Tools Flame Charts
Dtrace and StackVis — Only supported on SmartOS
clinicjs
Tracing
Interactive Stack Traces with TraceGL
Logging
Libraries that output debugging information
Caterpillar
Tracer
scribbles
Libraries that enhance stack trace information
Longjohn
Benchmarking
Apache Bench: ab -n 100000 -c 1 http://127.0.0.1:9778/
wrk
Other
Trace
Vantage
Bugger
Google Tracing Framework
Paul Irish's Guide
Legacy
These use to work but are no longer maintained or no longer applicable to modern node versions.
https://github.com/bnoordhuis/node-profiler - replaced by built-in debugging
https://github.com/c4milo/node-webkit-agent - replaced by node inspector
https://nodetime.com/ - defunct
The V8 debugger released as part of the Google Chrome Developer Tools can be used to debug Node.js scripts. A detailed explanation of how this works can be found in the Node.js GitHub wiki.
Node has its own built in GUI debugger as of version 6.3 (using Chrome's DevTools)
Simply pass the inspector flag and you'll be provided with a URL to the inspector:
node --inspect server.js
You can also break on the first line by passing --inspect-brk instead.
Node.js version 0.3.4+ has built-in debugging support.
node debug script.js
Manual: http://nodejs.org/api/debugger.html
Visual Studio Code will be my choice for debugging. No overhead of installing any tools or npm install stuff.
Just set the starting point of your app in package.json and VSCode will automatically create a configuration file inside your solution. It's build on Electron, on which editors like Atom are built.
VS Code gives similar debugging experience as you might have
had in other IDEs like VS, Eclipse, etc.
I personally use JetBrains WebStorm as it's the only JavaScript IDE that I've found which is great for both frontend and backend JavaScript.
It works on multiple OS's and has Node.js debugging built-in (as well as a ton of other stuff](http://www.jetbrains.com/webstorm/features/index.html).
My only 'issues'/wishlist items are were:
It seems to be more resource hungry on Mac than Windows It no longer seems an issue in version 6.
It would be nice if it had Snippet support (like those of Sublime Text 2 - i.e. type 'fun' and tap 'tab' to put in a function. See #WickyNilliams comment below - With Live Templates you also have snippet support.
A lot of great answers here, but I'd like to add my view (based on how my approach evolved)
Debug Logs
Let's face it, we all love a good console.log('Uh oh, if you reached here, you better run.') and sometimes that works great, so if you're reticent to move too far away from it at least add some bling to your logs with Visionmedia's debug.
Interactive Debugging
As handy as console logging can be, to debug professionally you need to roll up your sleeves and get stuck in. Set breakpoints, step through your code, inspect scopes and variables to see what's causing that weird behaviour. As others have mentioned, node-inspector really is the bees-knees. It does everything you can do with the built-in debugger, but using that familiar Chrome DevTools interface.
If, like me, you use Webstorm, then here is a handy guide to debugging from there.
Stack Traces
By default, we can't trace a series of operations across different cycles of the event loop (ticks). To get around this have a look at longjohn (but not in production!).
Memory Leaks
With Node.js we can have a server process expected to stay up for considerable time. What do you do if you think it has sprung some nasty leaks? Use heapdump and Chrome DevTools to compare some snapshots and see what's changing.
For some useful articles, check out
RisingStack - Debugging Node.js Applications
Excellent article by David Mark Clements of nearForm
If you feel like watching a video(s) then
Netflix JS Talks - Debugging Node.js in Production
Interesting video from the tracing working group on tracing and debugging node.js
Really informative 15-minute video on node-inspector
Whatever path you choose, just be sure you understand how you are debugging
It is a painful thing
To look at your own trouble and know
That you yourself and no one else has made it
Sophocles, Ajax
Theseus is a project by Adobe research which lets you debug your Node.js code in their Open Source editor Brackets. It has some interesting features like real-time code coverage, retroactive inspection, asynchronous call tree.
Node.js Tools for Visual Studio 2012 or 2013 includes a debugger. The overview here states "Node.js Tools for Visual Studio includes complete support for debugging node apps.". Being new to Node.js, but having a background in .NET, I've found this add in to be a great way to debug Node.js applications.
Visual Studio Code has really nice Node.js debugging support. It is free, open source and cross-platform and runs on Linux, OS X and Windows.
You can even debug grunt and gulp tasks, should you need to...
I wrote a different approach to debug Node.js code which is stable and is extremely simple. It is available at https://github.com/s-a/iron-node.
An opensource cross-platform visual debugger.
Installation:
npm install iron-node -g;
Debug:
iron-node yourscript.js;
I created a neat little tool called pry.js that can help you out.
Put a simple statement somewhere in your code, run your script normally and node will halt the current thread giving you access to all your variables and functions. View/edit/delete them at will!
var pry = require('pryjs')
class FizzBuzz
run: ->
for i in [1..100]
output = ''
eval(pry.it) // magic
output += "Fizz" if i % 3 is 0
output += "Buzz" if i % 5 is 0
console.log output || i
bar: ->
10
fizz = new FizzBuzz()
fizz.run()
If you are using the Atom IDE, you can install the node-debugger package.
Using Chrome Version 67.0.3396.62(+)
Run node app
node --inspect-brk=0.0.0.0:9229 server.js(server js filename)
Browse your app in chrome e.g. "localhost:port"
Open DevTools.
Click the the node icon beside the responsive device icon.
There will be another DevTools window that will pop out specifically for debugging node app.
There is built-in command line debugger client within Node.js. Cloud 9 IDE have also pretty nice (visual) debugger.
I put together a short Node.js debugging primer on using the node-inspector for those who aren't sure where to get started.
Visual Studio Code will work for us in debugging.
Use Webstorm! It's perfect for debugging Node.js applications. It has a built-in debugger. Check out the docs here: https://www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html
If you need a powerful logging library for Node.js, Tracer https://github.com/baryon/tracer is a better choice.
It outputs log messages with a timestamp, file name, method name, line number, path or call stack, support color console, and support database, file, stream transport easily. I am the author.
Assuming you have node-inspector installed on your computer (if not, just type 'npm install -g node-inspector') you just have to run:
node-inspector & node --debug-brk scriptFileName.js
And paste the URI from the command line into a WebKit (Chrome / Safari) browser.
Just for completeness:
The PyCharm 3.0 + Node.js Plugin offers an awesome development + run + debug experience.
Start your node process with --inspect flag.
node --inspect index.js
and then Open chrome://inspect in chrome. Click the "Open dedicated DevTools for Node" link or install this chrome extension for easily opening chrome DevTools.
For more info refer to this link
There is the new open-source Nodeclipse project (as a Eclipse plugin or Enide Studio):
Nodeclipse became #1 in Eclipse Top 10 NEW Plugins for 2013. It uses a modified V8 debugger (from Google Chrome Developer Tools for Java).
Nodeclipse is free open-source software released at the start of every month.
There are many possibilities...
node includes a debugging utility
node-inspector
Code editors / IDEs (see debug instructions for one of the following)
Atom,
VSCode
Webstorm
and more
Debug support is often implemented using the v8 Debugging Protocol or the newer Chrome Debugging Protocol.
IntelliJ works wonderfully for Node.js.
In addition, IntelliJ supports 'Code Assistance' well.
The NetBeans IDE has had Node.js support since version 8.1:
<...>
New Feature Highlights
Node.js Application Development
New Node.js project wizard
New Node.js Express wizard
Enhanced JavaScript Editor
New support for running Node.js applications
New support for debugging Node.js applications.
<...>
Additional references:
NetBeans Wiki / NewAndNoteworthyNB81.
Node.js Express App in NetBeans IDE, Geertjan-Oracle.
Use this commands
DEBUG_LEVEL=all node file.js
DEBUG=* node file.js
node file.js --inspect
ndb is an improved debugging experience for Node.js, enabled by Chrome DevTools
https://github.com/GoogleChromeLabs/ndb
node-debug -p 8888 scriptFileName.js

Is there a NodeJS plugin for Aptana Studio?

Is there a NodeJS plugin for Aptana Studio?
At least for NodeJS code-assist
And perhaps a way to create NodeJS project
And local NodeJS debugging
We have no NodeJS support currently. If this is something the community is interested in, it'd be helpful to file a feature request and vote it up: http://jira.appcelerator.org/secure/CreateIssue!default.jspa
Since we are built on eclipse, you should be able to try out the instructions for NodeJS debugging on Eclipse, found here: https://github.com/joyent/node/wiki/Using-Eclipse-as-Node-Applications-Debugger
As for special NodeJs projects, there's no notion of that. You would likely just create a normal Web project. We do have the concept of libraries that you can add to a project, wherein you could point to js files/libs for NodeJS. We also has special syntax files for describing JS libraries/APIs so it can be integrated into our content assist. A good example might be the ruble we have for jQuery which contains that file for two versions of the jQuery API. Here's the 1.6.2 version: https://github.com/aptana/javascript-jquery.ruble/blob/master/support/jquery.1.6.2.sdocml The bundle.rb up in the parent directory hooks up the file in the ruble/bundle.
My guess is that creating an analogous NodeJS ruble and building up an sdocml (xml) file that described the API would be the easiest way to get started. Sharing that on github and sending it to us would allow for others to contribute as well. There are docs for creating rubles here: http://wiki.appcelerator.org/display/tis/Creating+a+new+Ruble
UPDATE: Project URL is http://nodeclipse.github.io/
There is Nodeclipse.org effort. Current version is 0.11 see http://www.nodeclipse.org/history .
Recommended installation for Aptana users through Enide - Eclipse Node.js IDE
Features
Creating default structure for New Node Project and New Node Source File
JavaScript Syntax highlighting
Content Assistant
NPM support
Debugging - Breakpoint, Trace, etc... via modified Eclipse debugger plugin for V8
CoffeeScript support
Installing
Update Site : http://www.nodeclipse.org/updates/
Read also Hints (section Aptana Studio)
(source: nodeclipse.org)
Read http://www.nodeclipse.org/ for more & latest information.
I highly recommend using Sublime Text 2.
There are a few nodejs plugins as well as v8 javascript [Sublime v8] and standard ECMA-262.
This is not a direct answer to your question, but if you're looking for a good IDE for node.js, you should definitely try Microsoft WebMatrix 2. It basically does what you requested to do.
I was fed up of fighting with Aptana Studio and plugins and all this stuff... until I found out Sublime Text. Simple and wonderful.

web developer tools linux

I started using Linux for PHP web development. What is a helpful toolset to use for web development (mostly PHP) available for the Linux platform. My Current IDE is netbeans and I am happy with it.
In no particular order, my perfect environment consists of:
vim - text editing
git - version control
screen - terminal management
This is all you really need to build a great app in any language, for that matter (baseline). Every language has its specifics, but the above will more than get you started.
The PDT project provides a PHP
Development Tools framework for the
Eclipse platform. This project
encompasses all development components
necessary to develop PHP and
facilitate extensibility. It leverages
the existing Web Tools Platform (WTP)
and Dynamic Languages Toolkit (DLTK)
in providing developers with PHP
capabilities.
You can have a try for eclipse.
http://www.eclipse.org/pdt/
Another one not mentioned in this thread (suitable for PHP and a lot of other dynamic languages):
Komodo Edit (free version of the Komodo IDE)
I really like using Netbeans and SqlSquirrel. Both of these tools are written in Java and they are cross platform compatible. Also an odd note about SqlSquirrel: It uses the Netbeans editor. Also, if you like there are many tutorials and articles on using PHP with Netbeans on their site. Overall, go with the toolset that you like the most. There isn't a single toolset that works with everyone, and for all problems.
I like Eclipse PDT, and it can be used both on Windows (which I use at work) and on Linux (which I use at home).
Features are quite the same as netbeans, I'd say ; especially, you've got nice stuff like graphical debugging, when used with Xdebug.
I'd say that, these days, when it comes to a modern full-IDE for PHP, that works on Linux, and is free, there are two choices : netbeans and Eclipse PDT. Which one you prefer is generally a matter of taste, as far as I can tell.
If you're happy with NetBeans, stick to that as you IDE. Learn to use Vim or emacs just for common knowledge. Use version control, Subversion and git are good choices.
The power of linux is in the command line. Whatever you do outside the IDE, learn to do it with command line. After a while you'll be comfortable with it and you'll discover that there's bunch of stuff you never want to do with GUIs anymore :)

Resources