19 Pacchetti Node.js da conoscere come sviluppatore JavaScript per una vita facile e produttiva

Stai sprecando troppo tempo cercando di creare codice JavaScript? Continua a leggere per scoprire i vari pacchetti Node.js che potrebbero rendere la vita di uno sviluppatore JavaScript facile e produttiva.

JavaScript è un linguaggio sincrono a thread singolo. È il linguaggio di programmazione più utilizzato per lo sviluppo di software e applicazioni. Molti framework come Reactjs, Angularjs, Vuejs, Expressjs e Node.js sono stati sviluppati con il loro linguaggio di base, JavaScript.

Molti sviluppatori affrontano problemi durante la codifica in JavaScript a causa di vari concetti complessi come promesse, eventloop, callback, sollevamento, chiusure, ecc.

Per semplificare lo sviluppo in JavaScript, sono disponibili molti pacchetti Node.js che aiutano a gestire gli errori, formattare il codice, eliminare file, eseguire il debug del codice, garantire la sicurezza, ecc. Alcuni forniscono anche interfacce utente a riga di comando interattive per una migliore rappresentazione visiva della potenza della CPU, capacità di elaborazione, gravità degli errori, ecc.

Retire.js

Retire.js è una libreria Javascript che fornisce un elenco di vulnerabilità associate ad altre versioni della libreria Javascript.

Può essere utilizzato come estensione per Chrome, estensione per Firefox, scanner della riga di comando, plug-in Grunt, ecc. Può essere installato utilizzando il comando seguente:

$ npm install -g retire

Retire.js ha vari comandi per scansionare JavaScript e file di nodo. Esegue la scansione dei siti Web JavaScript e registra gli avvisi nella console dello sviluppatore. Retire.js genera il codice di uscita 13 quando rileva delle vulnerabilità. L’attività Gulp esegue automaticamente la scansione dei file e segnala le vulnerabilità.

Np

Np è un pacchetto JavaScript che fornisce varie funzionalità come la pulizia del codice, l’installazione delle dipendenze, la pubblicazione di pacchetti e tag, ecc. Assicura che il codice venga inviato al ramo principale e fornisce un’interfaccia utente interattiva.

L’autenticazione a due fattori viene utilizzata per garantire la sicurezza per i nuovi repository. Garantisce che il lavoro venga eseguito sull’ultima versione reinstallando le dipendenze. L’ultima versione viene inviata a npm. Può essere installato utilizzando il seguente comando:

$ npm install --global np

Le sue varie funzionalità includono la pubblicazione di codice da qualsiasi ramo, la creazione di sottodirectory per la pubblicazione, l’eliminazione della pulizia del codice e dei test, ecc. La configurazione di np può essere eseguita a livello globale e locale dai flag CLI nei file di configurazione di np come np-config.js e no -config.json.

ESLint

ESLint è uno strumento del pacchetto JavaScript che analizza JavaScript e identifica i modelli nel codice ECMA/JavaScript. Valuta i modelli nel codice utilizzando AST. Tutte le regole dello strumento sono definite sotto forma di plugin e possono essere aggiunte dinamicamente in fase di esecuzione. ESLint può essere installato utilizzando il comando seguente:

$ npm init @eslint/config

Dopo averlo installato utilizzando il comando precedente, viene generato un file .eslintrc con un insieme di regole con definizioni di errore e le rispettive condizioni. ESLint consente di definire tutte le dipendenze nel file .lock dell’utente e non utilizza un file .lock proprio. È anche altamente sicuro.

Shelljs

Shelljs è un ambiente in cui i comandi UNIX possono essere eseguiti su qualsiasi sistema operativo tramite l’API Node.js. Shelljs è portatile e supporta anche plugin di terze parti. I vari comandi che possono essere utilizzati sono echo, exec, chmod, pushd, popd, cd, cat, ecc. Il comando seguente può essere utilizzato per installare Shelljs.

$ npm install [-g] shelljs

È stato testato in vari progetti come Firefox, JSHint, ESLint, Zepto, ecc. L’importazione locale dei pacchetti Shelljs è preferita rispetto alle importazioni globali. Può anche essere configurato come silenzioso, fatale, dettagliato, ecc.

Frittata

Omelette fornisce un modello per il completamento automatico del codice per i progetti Node e Deno. Utilizza un’API super semplice e supporta anche l’API Async e l’API Tree. Di seguito viene mostrato un frammento di codice di esempio per l’implementazione di Omelette:

import * as omelette from 'omelette';

const firstArgument = ({ reply }) => {
  reply([ 'beautiful', 'cruel', 'far' ])
}

const planet = ({ reply }) => {
  reply([ 'world', 'mars', 'pluto' ])
}

omelette`hello|hi ${firstArgument} ${planet}`.init()

Dopo aver importato Omelette, è necessario creare un oggetto Omelette. Quindi, varie funzioni per il completamento automatico del codice come setupShellInitFile() per l’installazione, cleanupShellInitFile() per la pulizia possono essere richiamate sull’oggetto omelette per il completamento automatico del codice. Supporta anche l’uso delle funzioni Lambda per la creazione di API letterali di modelli complessi.

Più carino

Prettier è usato per formattare il codice. Aiuta a dare spazi di tabulazione, tiene traccia del contenuto massimo in una riga e garantisce un’adeguata indentazione all’interno di istruzioni condizionali e di ciclo. Converte il codice in un formato pulito e leggibile. Per esempio:

Il frammento di codice è riportato di seguito,

foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne());

viene convertito in quello seguente quando viene utilizzata l’estensione Prettier:

foo(
  reallyLongArg(),
  omgSoManyParameters(),
  IShouldRefactorThis(),
  isThereSeriouslyAnotherOne()
);

Può essere eseguito in ambienti CI, ambienti di sviluppo integrati (IDE), ecc.

jscpd

jscpd è un servizio tecnico di gestione del debito. È un pacchetto JavaScript che aiuta a trovare frammenti di codice duplicati su vari codici e documenti digitali. Utilizza un algoritmo di corrispondenza delle stringhe chiamato Rabin-Karp per trovare duplicazioni di codice.

jscpd/core ha la capacità di rilevare la duplicazione del codice in vari ambienti e jspd/tokenizer viene utilizzato per tokenizzare il codice sorgente del programma. Oltre a questi, molti altri pacchetti come html-reporter, badge-reporter, leveldb-store, ecc. Il comando per l’installazione di jscpd è:

$ npm install -g jscpd

jscpd è utilizzato da GitHub Super Linter, Code-Inspector, Mega-Linter, Codacy, ecc. Ognuno di loro usa jscpd per uno scopo diverso. Lo usano per l’elaborazione del linguaggio naturale, aggregatori di linee, analisi del codice, ecc.

Vtop

Vtop è un monitor che fornisce una rappresentazione grafica dell’attività della riga di comando. Fornisce informazioni sull’utilizzo della CPU analizzando i vari thread e processi in esecuzione e rappresentandoli graficamente tramite grafici, picchi, ecc. È stato sviluppato utilizzando JavaScript, Makefile e Shell. Il comando per installare Vtop è:

$ npm install -g vtop

Vari temi e codici colore possono essere utilizzati per rendere la GUI più attraente secondo i requisiti. Varie scorciatoie da tastiera come “u” per un aggiornamento, “g” per andare al processo in alto dell’elenco, “G” per spostarsi alla fine dell’elenco, “dd” per terminare i processi appartenenti a un particolare grp, ecc. può essere utilizzata.

Standardjs

Standardjs è una libreria JavaScript che automatizza la configurazione dei file, formatta il codice e trova rapidamente problemi con la gestione delle eccezioni dei programmatori. Il comando per installare Standardjs è riportato di seguito:

$ npm install standard --global

Dopo averlo installato, puoi eseguirlo su un file/snippet di codice usando il comando “standard” nell’interfaccia della riga di comando. Tutte le dipendenze di Standardjs possono essere aggiunte definendo “standard: “*” nell’oggetto dipendenza del file package.json.

Può anche essere installato come plug-in per vari editor di testo come Visual Studio Code, Sublime Text, Atom, Vim, Brackets, ecc. Node.js, Expressjs, npm, Brave e GoDaddy utilizzano Standardjs per soddisfare le proprie esigenze aziendali.

NodeJsScan

NodeJsScan è uno scanner di codici di sicurezza statico per applicazioni Node.js. Informa sullo stato di sicurezza di un’applicazione tramite un’interfaccia utente interattiva. Può essere integrato con varie applicazioni come Slack per avvisi/notifiche, avvisi e-mail configurando le impostazioni SMTP nel file settings.py di NodeJsScan, pipeline CI/CD, ecc. Aiuta anche a creare immagini docker.

Registra errori, informazioni e messaggi di avviso. Una descrizione dettagliata dell’errore, come il motivo del suo verificarsi, la sua gravità, i numeri di riga in cui si sono verificati gli errori, il numero di file scansionati e i problemi rilevati, ecc. Vengono inoltre tracciati grafici e grafici per una migliore leggibilità e analisi.

Spazzatura

Cestino è una libreria JavaScript che sposta i file eliminati nel cestino invece di eliminarli definitivamente. Supporta Mac, Linux e Windows. Il comando utilizzato per installare il Cestino è:

$ npm install trash

Cestino è un’API che accetta input e opzioni come parametri di funzione quando viene richiamata la funzione trash(). L’input potrebbe essere una stringa o un array di stringhe. Le opzioni potrebbero essere un oggetto. La funzione cestino restituisce una promessa. Diversi comandi vengono utilizzati in diversi sistemi operativi. macOS-trash viene utilizzato in MacOs, XDG Spec in Linux e cestino in Windows.

Xo

Xo è un wrapper JavaScript e TypeScript che utilizza ESLint sotto. Aiuta a creare codice leggibile dando indentazione al codice, aggiungendo punto e virgola, virgolette singole, virgole, ecc., ove richiesto. Molti plugin ESLint come unicorn, import, ava, n, ecc. possono essere usati con Xo. Il comando utilizzato per installare xo è:

$ npm install xo --save-dev

I problemi possono essere risolti automaticamente utilizzando il comando $xo –fix. Xo può essere configurato utilizzando la proprietà xo nel file package.json. Può essere installato come plug-in per vari editor come Vim, Visual Studio Code, Atom, Sublime Text, Emacs, ecc.

diff2html

diff2html sta per “diff parser and pretty HTML generator”. Evidenzia le modifiche nel codice della versione corrente rispetto alla versione precedente. Aiuta gli sviluppatori a identificare e capire facilmente quali modifiche sono state apportate. Lo fa usando i codici colore.

Lo fa evidenziando le modifiche riga per riga e affiancate. Evidenzia le modifiche alla sintassi del codice e raggruppa righe simili per tenere facilmente traccia delle modifiche al codice. Il comando per installare diff2html è il seguente:

$ npm install diff2html

È anche integrato con la riga di comando. Alcuni progetti che utilizzano diff2html sono Jenkins, Codacy, Ungit, git-explorer, code-annotation, ecc.

Gesso

Chalk è un modulo Node.js che aiuta nella formattazione e nello stile del codice. Aiuta anche a creare e aggiungere temi di colore al testo. È un’API espressiva e le sue prestazioni sono eccellenti. Nidifica gli stili e non ha dipendenze. L’utilizzo di Chalk può essere visto nel frammento di codice qui sotto:

import chalk from 'chalk';

console.log(chalk.blue('Hello world!'));

chalk.level definisce i colori supportati a ogni livello. ‘0’ indica che tutti i colori sono disabilitati, ‘1’ indica il supporto colore di base, ‘2’ indica il supporto 256 colori e ‘3’ indica il supporto Truecolor. I vari modificatori di stile per formattare il testo supportato dal gesso sono inverso, nascosto, visibile, barrato, grassetto, reimposta, corsivo, sottolineato, sopralineato, attenuato, ecc.

NpKill

Npkill è uno strumento che rimuove le vecchie e pesanti cartelle dei moduli dei nodi. Aiuta a rimuovere i moduli dei nodi molto rapidamente e a liberare spazio nel sistema. È stato sviluppato utilizzando TypeScript, JavaScript e Go. Non ha dipendenze ed è facile da usare. Il comando utilizzato per installare Npkill è:

$ npm i -g npkill

Tutti i moduli del nodo specificati nel percorso con il comando npkill verranno eliminati. Tuttavia, bisogna stare attenti durante l’eliminazione dei moduli del nodo perché è irreversibile. Se i moduli di qualsiasi progetto attivo vengono eliminati nel processo, i file vengono danneggiati e i moduli del nodo devono essere installati nuovamente.

fkill-cli

fkill-cli è uno strumento a riga di comando interattivo e open source che elimina i processi e le porte di Linux. È stato sviluppato utilizzando Node.js. È semplice, gratuito, sicuro e compatibile con più piattaforme. Funziona su Windows, Linux e macOS. Il comando utilizzato per installare fkill-cli è:

$ npm install --global fkill-cli

Il nome e l’ID del processo sono necessari per terminare il processo. “-f” forza l’esecuzione dell’operazione mentre il comando “-v” visualizza gli argomenti del processo. L’API fkill accetta input e opzioni come argomenti e restituisce un oggetto promise. Alcune opzioni sono force, silent, ignoreCase, tree e forceAfterTimeout.

Tunel locale

Localtunnel è una piattaforma che consente la condivisione di servizi Web da un ambiente esterno con l’ambiente locale di un computer senza alterare le impostazioni DNS e firewall del sistema.

Le richieste vengono inviate tramite proxy da Localtunnel e vengono passate al server distribuito localmente dopo averlo assegnato con un URL accessibile pubblicamente. Il comando utilizzato per installare Localtunnel è il seguente:

$ npm install -g localtunnel

È sicuro e utilizza le richieste HTTPS. Queste API possono essere utilizzate per testare i webhook. L’interfaccia utente può essere testata nei browser cloud utilizzando Localtunnel.

Inquirer.js

Inquirer.js è un’interfaccia utente a riga di comando interattiva per le applicazioni Node.js. Semplifica il processo di ricerca degli errori, analisi dell’input, convalida delle risposte e gestione dei prompt gerarchici. Utilizza moduli ESM nativi per l’implementazione delle sue funzionalità. Il comando utilizzato per installare Inquirer.js è:

$ npm install --save inquirer

Vari metodi utilizzati includono prompt, registerPrompt, createPromptModule, ecc. prompt() è una funzione che accetta domanda e risposta come input e restituisce una promessa quando viene invocata.

La domanda è un oggetto che è una versione hash di valori correlati alle domande come tipo, messaggio, impostazione predefinita, scelte, filtro, ecc. La coppia di oggetti valore-chiave della risposta contiene la versione hash delle risposte del client. La chiave è la proprietà della domanda, mentre il valore può contenere conferma, input, numero, rawlist, ecc.

http-server

http-server è un server http statico da riga di comando. È semplice e non richiede alcuna configurazione. Consiste di 2 file: vale a dire, index.html e 404.html. index.html è il file predefinito che verrebbe visualizzato sulle richieste. 404.html viene visualizzato quando non viene trovato un file. Il comando utilizzato per installare http-server è il seguente:

$ npm install --global http-server

È stato sviluppato utilizzando HTML e JavaScript. Garantisce la sicurezza tramite certificati TLS/SSL. Utilizza l’algoritmo RSA per la crittografia e la decrittografia delle chiavi. Consente inoltre di definire una passphrase insieme a una chiave privata per motivi di sicurezza.

Parole finali

JavaScript è il linguaggio di programmazione più utilizzato per lo sviluppo di software. Per semplificare la vita degli sviluppatori, sono stati sviluppati vari pacchetti Node.js.

I pacchetti Node.js come Retire.js, Localtunnel, Xo, Inquirer.js, Shelljs, fpkill, NodeJsScan, Prettier, ecc. possono essere utilizzati per formattare il codice, garantire la sicurezza, evidenziare le modifiche al codice, eliminare moduli di nodi pesanti e indesiderati, ecc. Questo aiuta gli sviluppatori a eseguire il debug, scrivere e gestire il loro codice in modo efficiente.

Puoi anche leggere come installare Node.js e NPM su Windows e macOS.