Sommario
CoffeeScript è un linguaggio che ci permette di scrivere codice JavaScript migliore, questo unificandolo e inquadrandolo sotto la stessa struttura, dove saremo sicuri che il codice JavaScript creato da CoffeeScript da un altro sviluppatore sarà identico al nostro.Ma questo non è tutto ciò che offre CoffeeScript, inoltre ha uno strumento chiamato Torta, simile a Grunt che ci consente di definire semplici compiti per aiutarci con i nostri progetti, poiché è possibile che abbiamo bisogno di un compito per eseguire test o semplicemente uno per costruire i nostri file e possiamo fare tutto questo con Torta attraverso un file chiamato file torta.
RequisitiPer completare questo tutorial dobbiamo avere un'installazione funzionale di CoffeeScript, abbiamo anche bisogno delle autorizzazioni per scrivere file ed eseguire CoffeeScript sul computer dove stiamo facendo il tutorial. Abbiamo bisogno di un editor di testo come Testo sublime poter scrivere il codice dei nostri esempi e non fa mai male dare un'occhiata ai tutorial passati del linguaggio.
Prima di iniziare è importante ricordare che non è necessario installare Torta, al momento della nostra installazione iniziale di CoffeeScript lo strumento è installato allo stesso modo, quindi non è necessario fare altro per iniziare a lavorarci.
Sapendo questo possiamo iniziare a lavorare con Torta, ma dobbiamo capire che tutte le attività che creiamo devono trovarsi in un file chiamato file torta, che deve avere esattamente lo stesso nome poiché cakefile sarà un file completamente diverso e non verrà riconosciuto dal compilatore.
Questo file deve essere alla radice del nostro progetto ed è estremamente importante che il suo contenuto sia solo codice CoffeeScript. Chiarito questo, vediamo come creare il nostro primo compito con Torta.
Creeremo una cartella chiamata cakefile_esempio e lì creeremo un file chiamato Cakefile.caffè e conterrà il seguente contenuto:
task "saluto", "Diamo il benvenuto alla grande comunità di Solvetic", -> console.log "Hello, World!"Prima di spiegare il nostro codice lo compileremo e vedremo il contenuto generato in JavaScript, questo non è necessario poiché non vedremo mai questo codice, ma questa volta potremmo usarlo per capire meglio cosa sta facendo CoffeeScript, vediamo l'output:
INGRANDIRE
Poiché siamo nel contesto, possiamo spiegare il nostro codice, prima definiamo l'attività con la funzione compito che viene aggiunto automaticamente a ogni file file torta. Il primo argomento della funzione è il nome dell'attività, in questo caso è saluto e lo useremo nella console dei comandi per eseguire l'attività, il secondo argomento può essere facoltativo ed è una descrizione dell'attività che apparirà nell'elenco delle nostre attività disponibili. L'ultimo argomento che inviamo nella funzione compito è un'altra funzione che verrà eseguita dall'attività ed è qui che verrà depositata la maggior parte della nostra logica.L'esempio precedente era solo per controllare cosa stava facendo il compilatore, ma il nostro file file torta non deve avere alcuna estensione. Possiamo inoltre vedere quali attività abbiamo a disposizione con il comando torta Nella console dei comandi, vediamo come appare:
Come possiamo vedere possiamo vedere il nome del nostro compito così come la descrizione. Ora per eseguire un task particolare usiamo il comando cake seguito dal nome del task, per finire vediamo l'output dalla console:
Sappiamo già come creare un'attività ed eseguirla, ma cosa succede se volessimo passargli alcuni argomenti? Ad esempio, cosa succede se vogliamo che il nostro saluto sia totalmente personalizzato in base a un valore che inviamo? Questo è abbastanza facile da fare, vediamo.
La prima cosa che dobbiamo fare nel nostro compito è definire l'opzione, lo facciamo con la funzione opzione a disposizione Torta. Questa funzione richiede tre argomenti, il primo è la forma breve dell'opzione, il secondo è la forma lunga e l'ultimo è una descrizione di cosa fa l'opzione, qualcosa di importante se stiamo sviluppando come una squadra e vogliamo documentare i nostri compiti. Apportiamo quindi le modifiche al nostro compito per definire l'opzione:
option '-n', '--name [NOME]', 'nome da salutare' task "saluto", "Diciamo ciao a qualcuno", (opzioni) -> messaggio = "Ciao", if options.name? message + = options.name else message + = "World" console.log messageCome vediamo prima della definizione di compito abbiamo la nostra funzione opzione, seguito dalla forma breve che sarebbe -n, quindi abbiamo la forma lunga che sarebbe -name specificando che si aspetterà un valore e infine la descrizione. Eseguiremo il comando cake e vedremo l'output nella nostra console:
Come possiamo vedere, abbiamo il nome della nostra attività, la descrizione e sotto di essa abbiamo le opzioni disponibili, le opzioni breve e lunga e la descrizione. Eseguiamo il nostro compito con l'opzione breve e vediamo l'output dalla console:
Per eseguire un'attività con opzioni è importante specificare prima gli argomenti e poi il nome dell'attività poiché se non incontriamo un errore non dice molto su cosa potrebbe accadere con il nostro file Cakefile, quindi vediamo come l'esecuzione utilizza la seconda opzione:
Qui sta accadendo qualcosa di strano ed è che prima di eseguire l'attività utilizziamo l'opzione con un singolo script, dandoci un errore ed è la cosa corretta da fare poiché nel nostro compito abbiamo definito l'opzione come --- nome invece di -name, dimostrando così l'efficacia di CoffeeScript per lo svolgimento dei compiti.
Inoltre possiamo definire se è richiesta un'opzione e lo facciamo nella definizione dell'attività controllando se il valore esiste e se non generiamo un errore, vediamo come appare questo codice:
opzione '-n', '--name [NOME]', 'nome che vuoi salutare' task "saluto", "Verifica che l'opzione esista", (opzioni) -> genera un nuovo errore ("[NOME] è un valore richiesto ") a meno che options.name? console.log "Ciao, # {opzioni.nome}"Eseguiamo quindi il nostro compito ma questa volta ignorando l'opzione come argomento e vediamo la risposta dalla console:
Come possiamo vedere, è stato mostrato l'errore che abbiamo incluso nel file, potendo così convalidare che le opzioni per le nostre attività vengono passate come argomenti quando necessario.
Avendo già visto come creare le nostre attività e definire le opzioni per esse, è importante vedere come possiamo eseguire le attività che si trovano all'interno degli altri. Ad esempio, possiamo avere due attività in comune in un progetto in cui una delle attività è responsabile della pulizia delle directory che abbiamo creato per il progetto e l'altra è responsabile della compilazione e della costruzione, vediamo come queste due attività che abbiamo appena finito di assomigliare a descrivere:
task "clean", "Questo task esegue la pulizia delle directory", -> console.log "cleaning the dir …" task "build", "Crea e compila i file per il progetto", -> console.log "costruzione…"Stiamo per eseguire il comando torta e vediamo la risposta attraverso la console:
Inoltre, per eseguire entrambe le attività insieme, possiamo usare il comando cake seguito da entrambi i nomi delle nostre attività:
Come possiamo vedere non c'è nulla di strano nei nostri compiti, ma se siamo osservatori ci rendiamo conto che prima dobbiamo eseguire il compito di pulizia sempre prima del nostro compito di costruzione, ma cosa succede se volessimo un terzo compito chiamato imballaggio, che poi imballerà il progetto per noi? Quindi dobbiamo prima costruirlo, assicurarci che le directory siano pulite e infine costruire.
Il problema è che questa soluzione non è ottimale, se per qualche motivo ci dimentichiamo di chiamare l'attività pulita o peggio, la nostra attività di compilazione avrà problemi con la nostra terza attività, fortunatamente Cake ci consente di chiamare un'attività all'interno di un'altra con la funzione invocare, quindi vediamo come appare il nostro file file torta con il nuovo compito e le modifiche:
task "clean", "Questo task esegue la pulizia delle directory", -> console.log "cleaning the dir …" task "build", "Crea e compila i file per il progetto", -> console.log "costruzione … "task" pack "," clean, build and pack our project ", -> invoke" clean "invoke" build "console.log" pack … "Ora non ci resta che chiamare il nostro packaging e in questo modo ci assicuriamo che gli altri due task richiesti vengano chiamati senza problemi, vediamo l'output nella console dei comandi:
È importante ricordare che le attività che utilizzano la funzione invocare vengono eseguiti in modo asincrono, quindi non abbiamo alcuna garanzia che l'attività di pulizia verrà eseguita prima della creazione e del confezionamento, quindi dobbiamo stare attenti nel loro utilizzo.
Con questo concludiamo questo tutorial, dove abbiamo imparato a creare i nostri compiti, eseguirli, dare loro opzioni e persino come invocare altri compiti all'interno di altri, ampliando così le nostre conoscenze in questo linguaggio efficace che contribuisce alle migliori pratiche di qualsiasi sviluppo.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo