È giunto il momento di tirare le fila su questa mini-serie che ha riguardato la creazione di moduli JavaScript: abbiamo visto come sia facile redistribuire e riorganizzare il nostro codice utilizzando poche semplici accortezze, le quali renderanno il nostro prodotto leggibile, organizzato e facilmente manutenibile.
Come anticipato nello script #369, i moduli in CommonJS sono stati il fulcro dei pacchetti Node.js. Tuttavia, questi hanno un problema: sono di natura sincroni, e sebbene per uno sviluppo backend questa sia una condizione ininfluente, per il mondo frontend è sempre consigliato utilizzare processi asincroni, che non blocchino, anche se per tempi minimi, l'interfaccia.
Gli ES Modules sono lo standard per la costruzione di moduli in JavaScript, ed essendo asincroni risolvono il problema principale della loro controparte. Sono supportati da Node 13 e, cosa molto importante, l'utilizzo di uno non preclude l'altro: possiamo utilizzare entrambe le tipologie all'interno dello stesso programma. In questo modo anche le librerie che non vengono più gestite, o quelle più complesse, la cui migrazione risulterebbe complicata, potranno comunque essere referenziate.
Oltre alla definizione, analizzata negli script delle settimane passate, e considerando che possono essere utilizzati contemporaneamente, troviamo che l'unica differenza tra i moduli CommonJS e ES Modules è nella modalità di inclusione. Mentre tutti gli ES Modules devono essere inclusi in testa al file, i moduli CommonJS possono invece essere inclusi quando se ne ha bisogno: possiamo aggiungere una referenza in cima al file o appena prima dell'utilizzo oppure includerli solo sotto una certa condizione, come mostrato in seguito.
if(doSum){
const sum = require('./module.js');
var x = sum(1);
}Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Welcome to Future Dev Day 2026
Utilizzare noopener e noreferrer nei link HTML
Blazor e Static Web Assets in .NET 10
Creare una cache temporanea in JavaScript
Usare il metodo nameof con un tipo generico in C# 14
Integrare OpenTelemetry direttamente in Azure Monitor
Permettere a un LLM di invocare funzioni con Microsoft.Extensions.AI
Utilizzo delle Feature flag in ASP.NET Core
Creare comandi nella dashboard .NET Aspire
GitHub Copilot CLI in ambienti offline
Azure SQL Database per dev: tutte le novità da non perdere
Ottimizzare i costi con Smart tier in Azure Blob Storage
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Accedere a risorse e immagini in Windows Store app di Windows 8
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Permettere il Drag-and-drop solo su zone predefinite con Silverlight 2.0
- Consumare dati binari in realtime lato client con ASP.NET Core SignalR
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Personalizare l'icona e le funzionalità di un sito web per iOS e IE
- Caricamenti veloci da CDN e fallback locale con ASP.NET Core
- Utilizzare dati in formato XML in XAML
- Accedere a dati esposti con WebService con Silverlight 1.0


