Maison > interface Web > js tutoriel > Modules NodeJS [Explication simple]

Modules NodeJS [Explication simple]

Susan Sarandon
Libérer: 2024-11-25 08:09:14
original
508 Les gens l'ont consulté

NodeJS Modules [Simple Explanation]

Que sont les modules ?

Imaginez que vous ayez un fichier index.js dans votre projet NodeJS dans lequel vous avez utilisé cinq fonctions. Cependant, deux de ces fonctions peuvent également être utilisées dans d'autres fichiers. Ainsi, au lieu d'un fichier, vous créez trois fichiers dans votre projet :

  • index.js
  • dependency1.js
  • dependency2.js

Ici, chacun de ces fichiers Javascript est un module, et la façon d'exporter des classes/fonctions et de les importer est essentiellement le système de modules. Un système de modules nous permet de diviser et d'inclure du code et d'importer du code écrit par nous ou d'autres développeurs chaque fois que nécessaire.

Ces modules ne sont pas seulement les fichiers Javascript qui existent dans votre projet ; il peut également s'agir de n'importe quel package externe que vous avez installé en tant que dépendance dans votre projet. De plus, NodeJS possède des modules intégrés tels que http, fs, etc., qui sont disponibles avec l'installation et peuvent être importés sans ajouter de dépendances externes.

Comment puis-je exporter ou importer un module ?

Deux systèmes de modules sont utilisés dans Node.

  1. CommonJS (CJS)
  2. Module ECMAScript (ESM)

Vous avez lu l'exemple du chef de cuisine-serveur dans mon blog précédent ; De même, si nous comparons les modules avec cela, imaginez que CommonJS est un vieux gros livre de recettes dont nous avions besoin pour rechercher et trouver une recette, tandis qu'ESM est une nouvelle application numérique pour voir les recettes.

CommonJS (CJS)

  • L'ancien système de modules.
  • Les modules sont écrits dans un format simple comme :
// Export
module.exports = function SayHello() {
  console.log("Hello World!");
};

// Import
const GetHello = require("./hello-script.js");
SayHello(); // "Hello World!"
Copier après la connexion
Copier après la connexion
  • Synchronique : charge les modules les uns après les autres.
  • Fonctionne uniquement dans Node.js (pas directement dans les navigateurs).

Modules ECMAScript (ESM)

  • Le système de modules moderne.
  • Les modules sont désormais plus structurés :
// Export
export function SayHello() {
  console.log("Hello World!");
}

// Import
import { SayHello } from "./hello-script.js";
SayHello();
Copier après la connexion
Copier après la connexion
  • Asynchrone : charge plusieurs modules en même temps.
  • Fonctionne nativement dans les navigateurs et Node.js.

Différence clé dans la syntaxe :
CJS : module.exports / require
ESM : exporter/importer

Comment configurer CJS ou ESM dans mon projet ?

  • Ouvrez le package.json de votre projet.
  • Ajouter :
{
  type: "module";
}
Copier après la connexion
Copier après la connexion
  • Cela indique à NodeJS d'interpréter .js comme ESM. Si nous ne l'ajoutons pas, NodeJS l'interprétera comme CommonJS par défaut.

Modules en Typescript :

Parfois, vous pouvez utiliser des modules ECMAScript mais un ancien package que vous avez importé est écrit en CommonJS. Pour gérer ces cas, nous nous assurons parfois que le code Javascript de sortie généré à partir du fichier Typescript est au format commun, même si nous avons écrit les fichiers Typescript au format ESM.

Pour cela, nous ajoutons les compilerOptions dans le tsconfig.json de notre projet :

// Export
module.exports = function SayHello() {
  console.log("Hello World!");
};

// Import
const GetHello = require("./hello-script.js");
SayHello(); // "Hello World!"
Copier après la connexion
Copier après la connexion

Que se passe-t-il alors :
module : "commonjs" : génère du JavaScript à l'aide du système de modules CommonJS, qui utilise require et module.exports.
target : "es6" : garantit que le JavaScript de sortie utilise la syntaxe ES6 et des fonctionnalités telles que les fonctions let, const et arrow.

Saisir le code Typescript :

// Export
export function SayHello() {
  console.log("Hello World!");
}

// Import
import { SayHello } from "./hello-script.js";
SayHello();
Copier après la connexion
Copier après la connexion

Code Javascript de sortie :

{
  type: "module";
}
Copier après la connexion
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal