Le contenu de cet article porte sur ce qu'est la spécification CommonJS ? Comprendre les spécifications CommonJS a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère que cela vous sera utile.
est écrit devant :
Un fichier est un module.
De plus, l'exemple de code de cet article doit s'exécuter normalement dans l'environnement node.js, sinon une erreur se produira. En fait, ES6 est déjà apparu dans la spécification du module. Si vous utilisez la spécification du module ES6, vous n'avez pas besoin d'un environnement node.js. Par conséquent, la spécification commonJS doit être distinguée de la spécification du module ES6.
1. Pourquoi la spécification CommonJS a-t-elle été développée ?
Sur le backend, les spécifications JavaScript sont loin derrière et présentent de nombreux défauts, ce qui rend difficile le développement d'applications à grande échelle utilisant JavaScript. Par exemple :
Pas de système de modules
Peu de bibliothèques standards
Pas d'interface standard
Absence de système de gestion de paquets
Contenu de la liste
La spécification CommonJS est proposée principalement pour Pour compenser le manque de standards en JavaScript, il a atteint le stade du développement d'applications à grande échelle comme Python, Ruby et Java, au lieu de rester au stade du développement de petits scripts côté navigateur.
2. Spécification du module CommonJS
La spécification du module CommonJS est principalement divisée en trois parties : la référence du module, la définition du module et l'identification du module.
1. Référence du module
Si vous utilisez l'instruction suivante dans un fichier.js
var math=require('math');
signifie utiliser la méthode require(), introduisez le module mathématique et attribuez-le à une variable mathématique. En fait, le nom de la variable nommée et le nom du module introduit ne doivent pas nécessairement être identiques, juste comme ceci :
var Math=require('math');
La signification de la mission est que seules les mathématiques seront reconnues dans a.js, comme il s'agit d'une variable qui a déjà été définie, Math n'est pas reconnu car math n'est pas défini.
Avec et sans chemin
Dans l'exemple ci-dessus, le paramètre require est simplement la chaîne du nom du module, sans chemin, et la référence est a Le module mathématique dans le répertoire node_modules dans le répertoire actuel où se trouve .js. S'il n'y a pas de répertoire node_modules dans le répertoire courant ou si le module mathématique n'est pas installé dans le répertoire node_modules, une erreur sera signalée.
Si le module à importer est dans un autre chemin, vous devez utiliser un chemin relatif ou un chemin absolu, par exemple :
var add=require('./add.js')
Dans l'exemple ci-dessus, le add.js Le fichier dans le répertoire actuel est introduit et attribuez-le à la variable d'ajout.
2. Définition du module
objet module : Dans chaque module, l'objet module représente le module lui-même.
Attribut d'exportation : un attribut de l'objet module, qui fournit une interface avec le monde extérieur.
Toujours en utilisant l'exemple précédent, en supposant que le code dans add.js est le suivant :
function add(num1,num2){ alert(num1+num2); }
Bien que le fichier a.js introduit le fichier add.js, le premier ne peut toujours pas être utilisé dans ce dernier. Pour la fonction add, un code comme add(3,5) dans le fichier a.js signalera une erreur, indiquant que add n'est pas une fonction.
Pour que les fonctions de add.js puissent être utilisées par d'autres modules, elles doivent exposer une interface externe. L'attribut export est utilisé pour terminer ce travail. Modifiez le code dans add.js comme suit :
exports.add=function (num1,num2){ alert(num1+num2); }
Le fichier a.js peut normalement appeler les méthodes dans add.js. Par exemple, des appels comme add.add(3,5) peuvent être. exécuté normalement.Le premier add signifie le module représenté par la variable add dans ce fichier, et le dernier add est la méthode add qui introduit le module.
3. Identification du module
L'identification du module fait référence aux paramètres passés à la méthode require, qui doit être une chaîne nommée dans CamelCase, ou avec ., .. , un chemin relatif au début, ou un chemin absolu.
3. Avantages de la spécification du module CommonJS
La spécification du module CommonJS résout très bien le problème de la pollution variable. Chaque module a un espace indépendant et n'interfère pas les uns avec les autres. d'autres solutions sont utilisées avec cela. Cela n'est rien en comparaison.
Le module de définition standard CommonJS est très simple et l'interface est très concise.
La spécification du module CommonJS prend en charge les fonctions d'importation et d'exportation, de sorte que chaque module puisse être connecté en douceur et que les dépendances entre eux puissent être réalisées.
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!