Why do we have install Node.js for Angular 2.0?

Technically, Node.js and NPM are not needed to do Angular2 work. It does ease things though. Here’s the main reasons I speculate are behind this choice:

  • CLI: Since a while now the de facto way to build and develop new Angular apps is to use the CLI tooling which relies on Node and NPM as well.

  • TypeScript: Examples are .ts, and you need to run a compiler step to get them into .js, which can be done on-the-fly easily with Node.js and NPM (plus it’s a way of easily getting typing files);

  • Web Server: Serving your Angular SPA from a “real” albeit light web server prevents probably some nasty issues that come with checking your site using file:// links.

The Quickstart guide itself actually continues to mention some more concrete reasons as well:

Here’s what these scripts do:

  • npm start – runs the compiler and a server at the same time, both in “watch mode”

  • npm run tsc – runs the TypeScript compiler once

  • npm run tsc:w – runs the TypeScript compiler in watch mode; the process keeps running, awaiting changes to TypeScript files and re-compiling when it sees them

  • npm run lite – runs the lite-server, a light-weight, static file server with excellent support for Angular apps that use routing

  • npm run typings – runs the typings tool separately

  • npm run postinstall – called by npm automatically after it successfully completes package installation. This script installs the TypeScript definition files defined in typings.json

You can also have a look at the Quickstart source and further dive into where NPM is needed.


Footnote: there’s a similar question about needing Node.js for AngularJS (1.x).

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)