JavaScript import vs require

Valentine Kagwiria 12 ottobre 2023
  1. require() in JavaScript
  2. import() in JavaScript
  3. Principali differenze tra require e import in JavaScript
JavaScript import vs require

Questo articolo introduce le principali differenze tra le istruzioni JavaScript require() e import(). Fornisce inoltre contesto ed elabora dove ciascuno può essere utilizzato sia con ES6 che con CommonJS.

require() in JavaScript

Questa è un’istruzione node.js incorporata ed è più comunemente usata per includere moduli da altri file separati. Funziona leggendo il file JS, eseguendolo e restituendo l’oggetto esportato. È molto popolare per la sua capacità di incorporare moduli di nodi centrali, moduli basati sulla comunità e persino moduli locali.

Possiamo usare require() per includere un modulo integrato in JavaScript.

const express = require('express');

È anche facile includere un modulo locale.

require('local_module');

Come illustrato sopra, node.js proverà a trovare local_module.js nei percorsi specificati. L’output differirà in base a ciò che il nodo trova: se il file esiste nel percorso specificato, l’output mostrerà il contenuto del modulo. In caso contrario, potresti ricevere un errore come quello di seguito:

Error: Cannot find module 'local_module'
at Function.Module._resolveFilename(module.js: 470: 15)
at Function.Module._load(module.js: 418: 25)
at Module.require(module.js: 498: 17)
at require(internal / module.js: 20: 19)
at repl: 1: 1
at ContextifyScript.Script.runInThisContext(vm.js: 23: 33)
at REPLServer.defaultEval(repl.js: 336: 29)
at bound(domain.js: 280: 14)
at REPLServer.runBound[as eval](domain.js: 293: 12)
at REPLServer.onLine(repl.js: 533: 10)

import() in JavaScript

import() è un modulo ES6. Insieme a export(), vengono comunemente chiamati import ed export ES6. Ciò significa essenzialmente che le istruzioni non possono essere utilizzate con altri tipi di file al di fuori dei moduli ES.

L’istruzione import() consente all’utente di importare i suoi moduli e di usarli nel programma. La sintassi è:

import './this-module.js';

L’utente specifica il percorso del file del modulo da importare.

Principali differenze tra require e import in JavaScript

Mentre require() è un’istruzione node.js che usa CommonJS, import() è usato solo con ES6.

require() rimane dove è stato messo nel file (non lessicale), e import() si sposta sempre all’inizio.

require() può essere chiamato per l’uso in qualsiasi punto del programma, ma import() può essere eseguito solo all’inizio del file.

La maggior parte delle persone esegue il codice direttamente con l’istruzione require() ma preferisce utilizzare il flag della funzionalità del modulo sperimentale quando lavora con import().

Infine, tutti i file che utilizzano l’istruzione require() vengono salvati come file .js, mentre quelli con import() possono essere salvati solo come file .mjs.

Non possono essere utilizzati contemporaneamente in un programma.

Generalmente, import() è più preferito perché consente all’utente di scegliere e caricare solo i pezzi del modulo di cui ha bisogno. L’istruzione funziona anche meglio di require() e fa risparmiare un po’ di memoria.