In questa puntata vedremo gli strumenti relativi al deploy di file statici. I casi d’uso comprendono:
I 10 strumenti essenziali se lavori con Angular e il front-end 0
Parte 3: deploy serverless - server per file statici in locale e remoto con http-server, test di progetti su dispositivi reali con ngrok e deploy rapido con surge + ottimizzare l’uso di programmi da linea di comando con cmder 0
Gli altri tool che andremo a conoscere nelle prossime puntate 5
Un server per i file statici della cartella corrente: http-server 7
http-server: il comando più utile 8
Un proxy per i nostri server locali: ngrok 10
ngrok: il comando principale 11
Deploy di file statici con un unico comando: surge 13
Un prompt moderno e avanzato per eseguire comandi da linea di comando: cmder 16
Questo articolo fa parte di una serie di articoli dedicati ai migliori strumenti per velocizzare il processo di sviluppo front-end.
Abbiamo già visto due tool potentissimi: Postman per verificare e gestire richieste HTTP e AutoHotkey per avere un assistente nello sviluppo front-end attraverso l’automazione di task noiosi e ripetitivi.
In questa sezione ci concentreremo su alcuni tool da linea di comando. Si tratta di strumenti che utilizzo quotidianamente per svolgere determinate funzioni in maniera rapida e semplice.
Vedremo di seguito http-server, per creare un server nella cartella corrente e servire i file statici presenti in questa cartella; ngrok per creare un tunnel e rendere disponibili anche all'esterno i nostri server locali; surge per fare il deploy su web di un progetto front-end eseguendo un unico comando.
Nell'ultima parte di questa puntata vedremo invece uno strumento per coloro che usano Windows. Si chiama cmder e possiamo usarlo al posto del prompt di Windows creando un ambiente a linea di comando moderno, con funzioni extra rispetto al classico prompt, tra cui multi-tab, autocompletamento e storico dei comandi.
I tool che andremo a vedere nelle varie puntate sono:
Creare un server non è mai un’operazione banalissima. Se sei uno sviluppatore con anni di esperienza nel back-end, sicuramente sai quanto tempo ci vuole per configurare un server Apache o Java.
Quando sviluppiamo per il front-end, spesso abbiamo bisogno di avviare velocemente un server per pochi minuti, giusto il tempo di vedere i risultati di un deploy.
Fortunatamente oggi esistono degli strumenti con Node che ci permettono di ottenere un server digitando un comando da linea di comando.
Per utilizzare i tool che vedremo di seguito è necessario installare Node sul proprio PC. Basta recarsi sul sito https://nodejs.org/en/ e scaricare la versione “current” per il nostro sistema operativo:
Anche se per back-end serverless si intende un server che fornisce delle API, qui useremo un server che non va configurato, non fornisce API extra, ma ci velocizza di molto il serving di file statici.
Lo scenario è il seguente: abbiamo dei file statici HTML in una cartella e vogliamo vedere il risultato sul browser come se fossero serviti da un server web.
Trascinando direttamente il file index.html su chrome il risultato non è infatti lo stesso perché Chrome vede il file come un file locale di sistema e disabilita alcune funzioni.
Possiamo allora usare http-server, un server velocissimo che si avvia con un solo comando.
Per installare http-server, da linea di comando eseguiamo il comando
npm install -g http-server
Usiamo il parametro -g per installare il programma globalmente nel sistema.
Dopo aver eseguito questo comando avremo disponibile il programma http-server su tutto il sistema.
Dopo aver installato http-server possiamo esplorare tutte le funzioni con il comando
http-server -h
Il risultato sarà il seguente:
Le funzioni sono molte, ma la funzione principale che useremo più spesso è quella di servire i file statici nella cartella corrente.
Basta eseguire il comando
http-server
e saranno serviti i file nella cartella corrente del prompt.
Eventualmente è possibile specificare la porta
http-server --p 4001
Ovviamente, per vedere i file serviti, basta andare sul browser all’indirizzo mostrato nel prompt con la porta specificata.
Nella sezione precedente abbiamo visto come creare un server nella cartella corrente. Il server è però disponibile solo sul nostro PC. E se volessimo rendere disponibile questo server locale all’esterno, magari per farlo vedere ad un nostro collega?
Ci viene in aiuto ngrok.
ngrok è una sorta di proxy che crea un tunnel di un qualsiasi server locale verso l’esterno. I casi d’uso sono diversi, tra cui:
Il suo funzionamento è semplicissimo.
Come nel caso precedente, l’installazione richiede un solo comando
npm install -g ngrok
Se tutto è andato a buon fine, stampiamo a video la versione corrente:
ngrok ha un comando semplice per fare il tunnel di un server http:
ngrok http 4200
Dove 4200 è la porta del server che vogliamo rendere disponibile all’esterno.
Dopo aver eseguito il comando vedremo una serie di informazioni:
La più importante è quella indicata con la freccia in figura: l’URL del server esterno.
Quando nel browser inseriremo l’indirizzo http://2844cf7d.ngrok.io ci risponderà il server del nostro PC.
Questo indirizzo funziona anche da un PC esterno, ma attenzione: se stoppiamo il tunnel (con CTRL+C) e lo riavviamo l’indirizzo cambia.
Per usare un indirizzo custom dobbiamo registrarci.
Ovviamente non aspettiamoci grandi velocità, poiché:
In ogni caso per i casi d’uso visti sopra è l’ideale.
L’ultimo tool che vedremo in questa puntata ci serve per il seguente caso d’uso: fare il deploy di file statici su un dominio esterno.
La combinazione http-server + ngrok è sicuramente utile in molti scenari, ma se vogliamo rendere disponibili versioni parziali o temporanee di un’applicazione ad un cliente o ad un collega, è meglio fare il deploy su un server performante e il cui dominio è mnemonico. surge ci consente di coprire entrambe queste esigenze.
L’installazione avviene come nel caso precedente
npm install -g surge
ed eseguendo il comando
surge -h
avremo una panoramica delle funzioni:
Al primo avvio ci verrà chiesto di registrarci, sempre da linea di comando, specificando un’email, ma non è richiesta conferma ;-)
Il comando principale ci permette di fare l’upload dei file nella cartella corrente in un dominio a nostra scelta, che finisce con .surge.sh
surge --domain mio-dominio.surge.sh
Possiamo quindi accedere al nostro progetto digitando l’indirizzo completo su qualsiasi browser:
Concludiamo questa puntata con un tool potentissimo per chi usa spesso la linea di comando. E per uno sviluppatore front-end la linea di comando è il pane quotidiano.
Mentre sotto linux ci sono molti strumenti che agevolano l’uso del terminale, sotto windows di default c’è solo cmd e ha molti limiti.
Per essere efficienti da linea di comando suggerisco di usare cmder
Si installa come un normale programma, ma esiste anche la versione portable.
I casi d’uso e le funzioni principali sono:
Con cmder avrete a disposizione anche git e ssh di default.
Ho reso disponibile inoltre un menu custom che usa AutoHotkey per avere comandi extra quando si preme con il tasto centrale, come andare nelle proprie cartelle preferite o eseguire comandi:
Lo trovate qui:
https://github.com/devexp-io/codici-articoli/tree/master/cmder
e per utilizzarlo serve AutoHotkey.
Abbiamo visto in questa puntata diversi tool a linea di comando legati al deploy. Nell'ecosistema npm ne esistono in realtà molti altri e tutti si installano facilmente con il comando npm install.
La prossima settimana vedremo invece Chrome con molti trucchi che probabilmente non conosci ancora e altri tool legati sempre al front-end.
Buon lavoro e come sempre per chiarimenti o feedback non esitare a contattarmi.
Il libro definitivo per imparare Angular, con esempi, codici e l'esperienza che serve per essere efficaci nello sviluppare siti, dashboard CRUD o web-app mobile (Raccomandato con un punteggio di 4.7/5 su Amazon)
Info sul libro + Codici e demo delle esercitazioniLibro stampatoKindleC'è una differenza tra programmare e progettare un software: il design. In questo libro viene mostrato il processo per arrivare ad un design semplice e manutenibile attraverso i design pattern
Info sul libro + Codici delle esercitazioniLibro stampatoKindleQuesto sito utilizza i cookie per migliorare l'usabilità.
In particolare usiamo Google Analytics.
Maggiori informazioni sono disponibili nella sezione sullaprivacy.
Il workshop è pensato per chi vuole imparare Angular e dura 3 giorni. Consiste nell'imparare e comprendere il framework con spiegazioni complete, esempi ed esercitazioni.
Se hai già letto il libro ti consigliamo un workshop avanzato che sarà disponibile a breve.
Il workshop si terrà a Roma il 7-8-9 settembre presso una SPA che sarà comunicata via e-mail. Comprende tutte le spese di vitto e alloggio.
Il pagamento avviene contestualmente all'arrivo.
Per ulteriori informazioni non esitare a chiedere:
Benvenuto indevexp.io, il sito italiano dedicato ad Angular e al front-end.
A breve verrai contattato daSalvatore del teamdevexp.io per il benvenuto
A breve riceverai una risposta daSalvatore del teamdevexp.io.
Il formato XL è in lavorazione e sarà pubblicato a breve. Grazie.
Grazie e a presto su devexp.io