Strumenti
1. Visual Studio Code

Visual Studio Code è un editor di codice sorgente leggero ma potente che gira sul desktop ed è disponibile per Windows, macOS e Linux. Viene fornito con il supporto integrato per JavaScript, TypeScript e Node.js e ha un ricco ecosistema di estensioni.
Estensioni suggerite

2. Altri editor
3. Package managers e altre utilità
Nel cassetto degli attrezzi di ogni sviluppatore, anche dilettante, ci sono oggi una quantità di utility diverse:
- Ci sono utility che operano sul codice con funzioni specifiche
- Compilazione del codice (ad esempio Cordova)
- Traduzione del codice in un altro linguaggio (ad esempio Babel che traduce ES6 in ES5)
- Controllo di sintassi e buone pratiche
- ecc.
- Ci sono utility che aiutano lo sviluppatore nella gestione di un progetto:
- Task runners (che servono ad organizzare le sequenze di operazioni che stanno spesso all base dello sviluppo di un progetto software - ad esempio: gulp e grunch)
- Package managers che organizzano le dipendenze di un progetto, cioè il software sviluppato da terze parte che concorre alla sviluppo del progetto stesso (ad esempio: npm, bower, yarn)
Molti di questi strumenti (soprattutto del secondo gruppo) dipendono da nodejs.
Nodejs
Node.js® è un runtime Javascript costruito sul motore JavaScript V8 di Chrome. Node.js usa un modello I/O non bloccante e ad eventi, che lo rende un framework leggero ed efficiente. L'ecosistema dei pacchetti di Node.js, npm, è il più grande ecosistema di librerie open source al mondo.
https://nodejs.org/it/
Gulp
Gulp è un toolkit che consente di automatizzare attività noiose o dispendiose in termini di tempo nel flusso di lavoro dello sviluppo di un progetto.
https://gulpjs.com/
Grunt
Automatizzare le attività ripetitive come minification, compilazione, test, controlli sintattici, ecc., rende il lavoro molto più facile e meno noioso. Un volta impostato il file di configurazione, Grunt svolge gran parte del lavoro ripetitivo per te con uno sforzo praticamente zero.
https://gruntjs.com/
Bower
I siti Web e i progetti di sviluppo di applicazioni mobili sono fatti di molte cose: framework, librerie, risorse e utilità. Bower gestisce tutte queste cose:
- Tiene traccia di tutti i pacchetti
- si assicura che siano aggiornati
- o imposta le versioni specifiche di cui hai bisogno
Bower non interviene sul codice, semplicemente installa le giuste versioni dei pacchetti necessari e le loro dipendenze.
https://bower.io/
Yarn
Yarn è un gestore di pacchetti. Ti consente di utilizzare e condividere il codice con altri sviluppatori di tutto il mondo e lo fa in modo rapido, sicuro e affidabile.
Il codice è condiviso attraverso pacchetti (packages). Un pacchetto contiene tutto il codice condiviso e un file package.json che descrive il pacchetto.
https://yarnpkg.com/