English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

如何开发出更好的JavaScript模块

Molti di noi hanno pubblicato moduli JavaScript sviluppati da soli su npm e, durante l'uso di alcuni moduli, spesso ho avuto l'idea di 'Questo modulo è molto utile, ma sarebbe ancora meglio se potesse xxx'. Quindi, questo articolo tenterà di sintetizzare, dal punto di vista dell'utente del modulo, come rendere i moduli più utili.

Fornire il punto di ingresso del modulo ES6

Webpack e rollup supportano alcune ottimizzazioni statiche per i moduli ES6 (ad esempio, Tree Shaking e Scope Hoisting), entrambi leggevano inizialmente il campo module di package.json come punto di ingresso per i moduli ES6, e solo se non c'è un campo module, leggeranno il campo main come punto di ingresso per i moduli CommonJS. Di solito, si scrive il codice sorgente in sintassi ES6, quindi si generano moduli CommonJS e moduli ES6 utilizzando strumenti di pacchettizzazione e trasformazione della sintassi, in modo da poter fornire contemporaneamente i campi main e module.

Fornire file di dichiarazione di tipo TypeScript

Se i tuoi utenti utilizzano TypeScript ma i tuoi moduli non forniscono file di dichiarazione, devono aggiungere un pezzo di codice nel loro progetto per evitare gli errori di compilazione di TypeScript; inoltre, fare così non è solo utile per gli utenti che utilizzano TypeScript, perché la maggior parte degli editor di codice (Webstorm, VS Code e altri) possono riconoscere le dichiarazioni di tipo di TypeScript e fornire suggerimenti di codice più precisi e dare avvisi quando l'utente inserisce il numero o il tipo di parametri errati.

Il miglior metodo è scrivere il tuo modulo in TypeScript, poiché la compilazione genererà automaticamente le dichiarazioni di tipo. Inoltre, puoi seguire la documentazione per mantenere manualmente un file di dichiarazioni. Puoi aggiungere un file index.d.ts nella directory principale del tuo modulo o dichiarare il percorso del file di dichiarazioni nel campo typings del package.json.

Fai funzionare il modulo sia in Node.js che nel browser

Puoi determinare se il modulo è in esecuzione in Node.js o nel browser controllando l'esistenza di una variabile globale chiamata window (ad esempio !!typeof window), e utilizzare modi diversi per implementare le tue funzionalità.

Questo metodo è abbastanza comune, ma se l'utente utilizza uno strumento di packaging di moduli, può portare a includere sia l'implementazione Node.js che quella del browser nel file di output finale. Per risolvere questo problema, la comunità open source ha proposto di aggiungere un campo browser nel package.json, e attualmente webpack e rollup supportano questo campo.

Ci sono due modi di utilizzare il campo browser:

Fornisci un percorso di file al campo browser per utilizzare il modulo come punto di ingresso nel browser, ma è importante notare che lo strumento di packaging utilizzerà il percorso di file specificato nel campo browser come punto di ingresso del modulo, il che significa che il campo module sarà ignorato, il che può portare a uno strumento di packaging che non ottimizzerà il tuo codice. Per ulteriori dettagli, consulta questa domanda.

Se desideri sostituire solo alcuni file, puoi dichiarare un oggetto.

Facciamo un esempio, supponiamo che il tuo modulo contenga due file: http.js e xhr.js, il primo file utilizza il modulo http di Node.js per inviare richieste, l'altro utilizza l'XMLHTTPRequest del browser per implementare la stessa funzione. Per utilizzare il file appropriato, il codice del tuo modulo dovrebbe sempre richiedere(‘./path/to/http.js’), e dichiarare in package.json:

{
 "browser": {
  "./path/to/http.js": "./path/to/xhr.js"
 }
}

In questo modo, quando il tuo modulo viene utilizzato dallo strumento di packaging, lo strumento di packaging includerà solo il codice di xhr.js nel file di output finale.

Armati di vari servizi il tuo progetto

La maggior parte dei progetti JavaScript sono open source, e la comunità open source offre anche molti servizi gratuiti per i progetti open source, che possono offrire una maggiore assistenza ai tuoi progetti, ecco alcuni dei più comuni elencati qui.

Un servizio utilizzato più frequentemente in un progetto è l'integrazione continua. I servizi di integrazione continua possono eseguire compiti come i test, il controllo dello stile del codice e il packaging sui server e eseguire automaticamente quando si inviano i cambiamenti, tra cui Travis CI, CircleCI e AppVeyor. Travis CI è gratuito per i progetti open source e offre ambienti di esecuzione Linux e OS X; CircleCI è gratuito per sia i progetti open source che quelli privati, ma ha un limite di 1500 minuti di tempo di esecuzione al mese; AppVeyor offre ambienti di esecuzione Windows e è gratuito per i progetti open source.

Dopo aver eseguito i test, puoi anche caricare la copertura dei test su Coveralls. Questo servizio ti permette di esplorare online la copertura dei test del codice.

Se vuoi che il tuo modulo sia ampiamente testato su tutte le versioni e piattaforme dei browser, puoi anche utilizzare Sauce Labs e BrowserStack, entrambi gratuiti per i progetti open source, ma è necessario inviare una email per richiedere l'accesso.

Infine, Shields IO offre una vasta gamma di icone, che possono fornire molte informazioni aggiuntive al tuo progetto, tra cui ma non limitatamente a: numero di versione npm, numero di download, stato di passaggio dei test, copertura dei test, dimensione dei file, dipendenze scadute ecc.

Ecco tutto il contenuto che abbiamo condiviso con voi su come sviluppare moduli JavaScript utili, se avete domande o dubbi, potete discuterli nella sezione dei commenti sottostante. Grazie per il tuo supporto al tutorial di urlai.

Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, è di proprietà dei rispettivi autori, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una email a: notice#oldtoolbag.com (al momento dell'invio dell'email, sostituisci # con @) per segnalare, fornendo prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.