but perhaps the most popular • A whole ecosystem – Fun, cutting-edge technologies • Built on the Chrome’s open-source V8 engine – JIT compilation to native bytecode
• Run the same code inside or outside the browser – E.g. command-line app with Node – Same app with GUI via the browser • Building services in JavaScript – e.g. MEAN technology stack • MongoDB, ExpressJS, AngularJS, NodeJS – Reduced impedance mismatch between frontend and backend – Or fake services, such as our mock API • Headless browser emulation
as a build tool • You can register tasks from plugins • You can composite those tasks into other tasks • Plugin tasks are highly configurable • All configured in one JavaScript file – Gruntfile.js at project root
– Available on Node’s website: http://nodejs.org/ • Use npm to install the Grunt command line – npm install -g grunt-cli – -g is the global flag • Install for the whole system • Not in the individual repository (local) • Usually you won’t want to use this flag
for the basic info – Creates package.json – You can hand tweak this however you want • Anyone who newly downloads your project can just: npm install – Restores the dependencies
– If no dependencies, I recommend adding dependencies: {} to the package.json • Development dependencies are separate – npm install --save-dev ... • (In case you are lost, next slide has example)
– …at a module level – …when bootstrapping your project • Why not try: – Make a small Angular project – Use a different test, spy or assertion framework – Use a language that compiles to JavaScript