JavaScript import vs require

Valentine Kagwiria 12 Oktober 2023
  1. require() in JavaScript
  2. import() in JavaScript
  3. Hauptunterschiede zwischen require und import in JavaScript
JavaScript import vs require

In diesem Artikel werden die Hauptunterschiede zwischen den JavaScript-Anweisungen require() und import() vorgestellt. Es gibt auch Kontext und erläutert, wo jeder mit ES6 und CommonJS verwendet werden kann.

require() in JavaScript

Dies ist eine integrierte node.js-Anweisung und wird am häufigsten verwendet, um Module aus anderen separaten Dateien einzuschließen. Es funktioniert, indem die JS-Datei gelesen, ausgeführt und das exportierte Objekt zurückgegeben wird. Es ist sehr beliebt für seine Fähigkeit, Kernknotenmodule, Community-basierte und sogar lokale Module zu integrieren.

Wir können require() verwenden, um ein eingebautes Modul in JavaScript aufzunehmen.

const express = require('express');

Es ist auch einfach, ein lokales Modul einzuschließen.

require('local_module');

Wie oben dargestellt, versucht node.js, das local_module.js in den angegebenen Pfaden zu finden. Die Ausgabe wird entsprechend dem Knoten verschoben: Wenn die Datei im angegebenen Pfad vorhanden ist, zeigt die Ausgabe den Inhalt des Moduls an. Wenn dies nicht der Fall ist, wird möglicherweise ein Fehler wie der folgende angezeigt:

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() ist ein ES6-Modul. Zusammen mit export() werden sie üblicherweise als ES6-Import und -Export bezeichnet. Dies bedeutet im Wesentlichen, dass die Anweisungen nicht mit anderen Dateitypen außerhalb der ES-Module verwendet werden können.

Mit der Anweisung import() kann der Benutzer seine Module importieren und im Programm verwenden. Die Syntax lautet:

import './this-module.js';

Der Benutzer gibt den Dateipfad zum zu importierenden Modul an.

Hauptunterschiede zwischen require und import in JavaScript

Während require() eine node.js-Anweisung ist, die CommonJS verwendet, wird import() nur mit ES6 verwendet.

require() bleibt dort, wo es in die Datei eingefügt wurde (nicht lexikalisch), und import() wird immer nach oben verschoben.

require() kann zu jedem Zeitpunkt im Programm aufgerufen werden, import() kann jedoch nur am Anfang der Datei ausgeführt werden.

Die meisten Benutzer führen Code direkt mit der Anweisung require() aus, verwenden jedoch lieber das Feature-Flag des experimentellen Moduls, wenn sie mit import() arbeiten.

Schließlich werden alle Dateien, die die Anweisung require() verwenden, als .js-Dateien gespeichert, während diejenigen mit import() nur als .mjs-Dateien gespeichert werden können.

Sie können nicht gleichzeitig in einem Programm verwendet werden.

Im Allgemeinen wird import() bevorzugt, da der Benutzer nur die Teile des Moduls auswählen und laden kann, die er benötigt. Die Anweisung ist außerdem leistungsfähiger als require() und spart Speicherplatz.