Maison  >  Article  >  interface Web  >  Introduction détaillée à Node.js packages_node.js

Introduction détaillée à Node.js packages_node.js

WBOY
WBOYoriginal
2016-05-16 16:20:031229parcourir

Dans le langage Node.js, il n'y a pas de différence essentielle entre les packages et les modules. Les packages sont une abstraction plus profonde basée sur des modules. Les packages encapsulent une fonction indépendante et sont utilisés pour la publication, la mise à jour, la gestion des dépendances et le contrôle de version. Node.js implémente le mécanisme de package selon la spécification CommonJS, et npm a été développé pour résoudre les exigences de publication et d'acquisition de packages.

Le package de Node.js est un répertoire qui contient le fichier de description du package package.json au format JSON. Le package de Node.js suit essentiellement la spécification CommonJS, il présente donc les caractéristiques suivantes :

Fonctionnalités du package définies par la spécification CommonJS :

1) Le répertoire de niveau supérieur contient le fichier package.json
2) Le répertoire bin stocke les fichiers binaires
3) Le répertoire lib stocke les fichiers JavaScript
4) Le répertoire doc stocke les documents
5) Le répertoire de tests stocke les tests unitaires.

Les modules et fichiers Node.js ont une correspondance biunivoque. Les fichiers peuvent non seulement être des fichiers sources JavaScript ou des fichiers binaires, mais également des répertoires. Le package le plus simple est un module d’annuaire.

Les packages Node.js sont généralement une collection de modules, qui fournissent un niveau d'abstraction plus élevé basé sur les modules, ce qui équivaut à une bibliothèque de fonctions qui fournit des interfaces fixes.
En personnalisant package.json, nous pouvons créer des packages plus complexes, plus complets et plus conformes à publier.

Lorsque Node.js appelle un package, il vérifiera d'abord le champ principal du fichier package.json dans le package et l'utilisera comme module d'interface du package si le champ principal du fichier package.json ne le fait pas. existe, alors Node.js essaiera de rechercher index.js ou index.node comme interface du package.

Le fichier package.json est un fichier utilisé par la spécification CommonJS pour décrire un package. Un fichier package.json entièrement conforme à la spécification doit contenir les champs suivants :
1) nom : nom du package. Le nom du package est unique et se compose de lettres minuscules, de chiffres et de traits de soulignement, et ne peut pas contenir d'espaces.
2) description : description du colis. Donnez une brève description du colis.
3) version : numéro de version. Une chaîne de version qui répond à la spécification « Semantic Version Identification ».
4) mots-clés : tableau de mots-clés, généralement utilisés pour la recherche.
5) responsables : ensemble de responsables. Chaque élément contient des champs nom, email (facultatif), web (facultatif).
6) contributeurs : tableau des contributeurs. Le format est le même que celui du tableau du responsable. L'auteur du package doit être le premier élément du tableau des contributeurs.
7) Bugs : l'adresse à laquelle soumettre les bugs, qui peut être un site Web ou une adresse e-mail.
8) licences : tableau de licences. Chaque élément doit contenir des champs type (nom de la licence) et url (lien d'adresse vers le texte de la licence).
9) référentiels : tableau d'adresses d'hébergement d'entrepôts. Chaque élément doit contenir des champs type (type d'entrepôt, tel que Git), url (adresse de l'entrepôt) et path (chemin relatif à l'entrepôt, facultatif).
10) dépendances : dépendances du package. Est un tableau associatif composé du nom du package et du numéro de version.

Remarque : la spécification « Semantic Version Identification » est un ensemble de spécifications de dénomination de versions proposées à l'étranger. L'objectif initial était de résoudre divers problèmes de comparaison de taille de numéro de version. Elle est actuellement adoptée par de nombreux systèmes de gestion de packages.

Ce qui suit est un exemple package.json entièrement conforme à la spécification CommonJS :

Copier le code Le code est le suivant :

{  
  "name": "testpackage", 
  "description": "Mon package pour CommonJS.", 
  "version": "0.1.0", 
  "mots clés": [ 
     "package de test", 
     "lique" 
  ],  
  "mainteneurs": [ 
     { 
        "name": "liq", 
        "email": "liq@hotmail.com", 
     } 
  ], 
  "contributeurs": [ 
     { 
        "name": "liq", 
        "web": "http://blog.csdn.net/chszs" 
     } 
  ], 
  "bugs": { 
     "mail": "liq@hotmail.com", 
     "web": "http://blog.csdn.net/chszs" 
  }, 
  "licences": [ 
     { 
        "type": "Licence Apache v2", 
        "url": "http://www.apache.org/licenses/apache2.html" 
     } 
  ], 
  "dépôts": [ 
     { 
        "type": "git", 
        "url": "http://github.com/chszs/packagetest.git" 
     } 
  ], 
  "dépendances": {  
     "webkit": "1.2", 
     "ssl": {  
        "gnutls": ["1.0", "2.0"], 
        "openssl": "0.9.8" 
     } 
  } 
>
Déclaration:
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