NPM utiliser Présentation
NPM est accompagné NodeJS des outils de gestion des paquets installés ensemble, peuvent résoudre le code de nombreux problÚmes pour le déploiement sur des scénarios d'utilisation courants sont les suivants:
- NPM permet aux utilisateurs de télécharger depuis le serveur vers les packages tiers écrits par d'autres pour une utilisation locale.
- Il permet aux utilisateurs de télécharger et d'installer le programme de ligne de commande écrite par quelqu'un d'autre pour utiliser le serveur local à partir du NPM.
- Il permet aux utilisateurs d'écrire leur propre programme package ou ligne de commande téléchargée sur le serveur pour les autres à utiliser NPM.
Depuis la nouvelle version de nodejs ont intĂ©grĂ© npm, donc avant npm Ă©galement ĂȘtre installĂ©. Vous pouvez Ă©galement entrer dans le"npm -v" pour tester si une installation rĂ©ussie.La commande suivante, version apparaĂźt l'installation rapide a rĂ©ussi:
$ npm -v 2.3.0
Si vous installez une version plus ancienne de npm, il peut facilement ĂȘtre mis Ă niveau via npm Ă commande, la commande est la suivante:
$ sudo npm install npm -g /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js npm@2.14.2 /usr/local/lib/node_modules/npm
Si le systĂšme de fenĂȘtre, utilisez la commande suivante:
npm install npm -g
Npm installer Ă l'aide du module de commande
npm installer la syntaxe du module Node.js est la suivante:
$ npm install <Module Name>
Les exemples suivants, nous utilisons la commande pour installer npm cadre commun module Web Node.jsexpress:
$ npm install express
Une fois installé, exprimer le paquet est placé dans le répertoire node_modules dans le répertoire du projet, de sorte que le code que parbesoin ( «exprÚs») comme maniÚre, sans spécifier le chemin d'accÚs des paquets tiers.
var express = require('express');
l'installation globale et installation locale
npm package d'installation dans une installation locale (local), l'installation globale (mondiale) sont deux, frapper à partir d'une ligne de commande, la seule différence est qu'il n'y a pas seulement -g, comme
npm install express # æŹć°ćźèŁ npm install express -g # ć šć±ćźèŁ
Si l'erreur suivante:
npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
solution:
$ npm config set proxy null
Installation locale
- 1. Placez le package d'installation placĂ© dans les ./node_modules (rĂ©pertoire oĂč la commande est en cours d'exĂ©cution npm), sinon rĂ©pertoire node_modules va gĂ©nĂ©rer dans le rĂ©pertoire d'exĂ©cution de la commande npm du rĂ©pertoire en cours.
- 2. peut ĂȘtre introduit package installĂ© localement nĂ©cessitent par ().
Installation mondiale
- 1. Placez le package d'installation placé dans le répertoire / usr / local ou votre noeud de répertoire d'installation.
- 2. Vous pouvez utiliser directement sur la ligne de commande.
Si vous voulez avoir les deux fonctions, vous devez l'installer en deux endroits ou sur le lien de npm.
Ensuite, nous utilisons le global installer express
$ npm install express -g
Le processus d'installation du résultat suivant, la premiÚre ligne du numéro de version de sortie et l'emplacement d'installation du module.
express@4.13.3 node_modules/express âââ escape-html@1.0.2 âââ range-parser@1.0.2 âââ merge-descriptors@1.0.0 âââ array-flatten@1.1.1 âââ cookie@0.1.3 âââ utils-merge@1.0.0 âââ parseurl@1.3.0 âââ cookie-signature@1.0.6 âââ methods@1.1.1 âââ fresh@0.3.0 âââ vary@1.0.1 âââ path-to-regexp@0.1.7 âââ content-type@1.0.1 âââ etag@1.7.0 âââ serve-static@1.10.0 âââ content-disposition@0.5.0 âââ depd@1.0.1 âââ qs@4.0.0 âââ finalhandler@0.4.0 (unpipe@1.0.0) âââ on-finished@2.3.0 (ee-first@1.1.1) âââ proxy-addr@1.0.8 (forwarded@0.1.0, ipaddr.js@1.0.1) âââ debug@2.2.0 (ms@0.7.1) âââ type-is@1.6.8 (media-typer@0.3.0, mime-types@2.1.6) âââ accepts@1.2.12 (negotiator@0.5.3, mime-types@2.1.6) âââ send@0.13.0 (destroy@1.0.3, statuses@1.2.1, ms@0.7.1, mime@1.3.4, http-errors@1.3.1)
Vous pouvez utiliser la commande suivante pour afficher tous les modules installés mondiaux:
$ npm ls -g
Utilisez package.json
package.json situé dans le module de répertoire, définit les propriétés de l'emballage. Regardons le node_modules / express / contenu package.json fichier package.json colis express situé:
{ "name": "express", "description": "Fast, unopinionated, minimalist web framework", "version": "4.13.3", "author": { "name": "TJ Holowaychuk", "email": "tj@vision-media.ca" }, "contributors": [ { "name": "Aaron Heckmann", "email": "aaron.heckmann+github@gmail.com" }, { "name": "Ciaran Jessup", "email": "ciaranj@gmail.com" }, { "name": "Douglas Christopher Wilson", "email": "doug@somethingdoug.com" }, { "name": "Guillermo Rauch", "email": "rauchg@gmail.com" }, { "name": "Jonathan Ong", "email": "me@jongleberry.com" }, { "name": "Roman Shtylman", "email": "shtylman+expressjs@gmail.com" }, { "name": "Young Jae Sim", "email": "hanul@hanul.me" } ], "license": "MIT", "repository": { "type": "git", "url": "git+https://github.com/strongloop/express.git" }, "homepage": "http://expressjs.com/", "keywords": [ "express", "framework", "sinatra", "web", "rest", "restful", "router", "app", "api" ], "dependencies": { "accepts": "~1.2.12", "array-flatten": "1.1.1", "content-disposition": "0.5.0", "content-type": "~1.0.1", "cookie": "0.1.3", "cookie-signature": "1.0.6", "debug": "~2.2.0", "depd": "~1.0.1", "escape-html": "1.0.2", "etag": "~1.7.0", "finalhandler": "0.4.0", "fresh": "0.3.0", "merge-descriptors": "1.0.0", "methods": "~1.1.1", "on-finished": "~2.3.0", "parseurl": "~1.3.0", "path-to-regexp": "0.1.7", "proxy-addr": "~1.0.8", "qs": "4.0.0", "range-parser": "~1.0.2", "send": "0.13.0", "serve-static": "~1.10.0", "type-is": "~1.6.6", "utils-merge": "1.0.0", "vary": "~1.0.1" }, "devDependencies": { "after": "0.8.1", "ejs": "2.3.3", "istanbul": "0.3.17", "marked": "0.3.5", "mocha": "2.2.5", "should": "7.0.2", "supertest": "1.0.1", "body-parser": "~1.13.3", "connect-redis": "~2.4.1", "cookie-parser": "~1.3.5", "cookie-session": "~1.2.0", "express-session": "~1.11.3", "jade": "~1.11.0", "method-override": "~2.3.5", "morgan": "~1.6.1", "multiparty": "~4.1.2", "vhost": "~3.0.1" }, "engines": { "node": ">= 0.10.0" }, "files": [ "LICENSE", "History.md", "Readme.md", "index.js", "lib/" ], "scripts": { "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/", "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/ test/acceptance/", "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/ test/acceptance/", "test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/" }, "gitHead": "ef7ad681b245fba023843ce94f6bcb8e275bbb8e", "bugs": { "url": "https://github.com/strongloop/express/issues" }, "_id": "express@4.13.3", "_shasum": "ddb2f1fb4502bf33598d2b032b037960ca6c80a3", "_from": "express@*", "_npmVersion": "1.4.28", "_npmUser": { "name": "dougwilson", "email": "doug@somethingdoug.com" }, "maintainers": [ { "name": "tjholowaychuk", "email": "tj@vision-media.ca" }, { "name": "jongleberry", "email": "jonathanrichardong@gmail.com" }, { "name": "dougwilson", "email": "doug@somethingdoug.com" }, { "name": "rfeng", "email": "enjoyjava@gmail.com" }, { "name": "aredridel", "email": "aredridel@dinhe.net" }, { "name": "strongloop", "email": "callback@strongloop.com" }, { "name": "defunctzombie", "email": "shtylman@gmail.com" } ], "dist": { "shasum": "ddb2f1fb4502bf33598d2b032b037960ca6c80a3", "tarball": "http://registry.npmjs.org/express/-/express-4.13.3.tgz" }, "directories": {}, "_resolved": "https://registry.npmjs.org/express/-/express-4.13.3.tgz", "readme": "ERROR: No README data found!" }
Package.json Description
nom - le nom du package.
Version - le numéro de version du paquet.
Description - description du paquet.
officiel package site url- page d' accueil.
auteur - auteur du nom du package.
Autres noms contributeurs package- contributeurs.
dépendances - Liste des dépendances.Si les dépendances ne sont pas installés, npm installera automatiquement les paquets dépendants dans le répertoire node_module.
zones de type stockage de code de package, soit git ou svn, git disponible sur Github- référentiel.
principale - champ principalest un ID de module, qui est un pointeur vers un projet majeur de votre programme. Autrement dit, si vous emballez nom explicite, alors l'utilisateur à l'installer, puis exiger ( «express»).
mots - clés -les mots - clés
module DĂ©chargement
Nous pouvons utiliser la commande suivante pour désinstaller des modules Node.js.
$ npm uninstall express
AprÚs la désinstallation, vous pouvez aller à l'emballage / node_modules / catalogue suivant est là , ou utilisez la commande suivante:
$ npm ls
Module de mise Ă jour
Nous pouvons utiliser la commande suivante pour mettre Ă jour le module:
$ npm update express
Module de recherche
Utilisez les modules de recherche suivants:
$ npm search express
Créer un module
Créez un module, le fichier package.json est essentiel. Nous pouvons utiliser NPM générer fichier package.json, le fichier résultant contient les résultats de base.
$ npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg> --save` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. name: (node_modules) w3big # æšĄćć version: (1.0.0) description: Node.js æ”èŻæšĄć(www.w3write.com) # æèż° entry point: (index.js) test command: make test git repository: https://github.com/w3big/w3big.git # Github ć°ć keywords: author: license: (ISC) About to write to âŠâŠ/node_modules/package.json: # çæć°ć { "name": "w3big", "version": "1.0.0", "description": "Node.js æ”èŻæšĄć(www.w3write.com)", âŠâŠ } Is this ok? (yes) yes
Les informations ci-dessus, vous devez entrer votre propre situation. AprÚs l'entrée finale «oui» va générer un fichier package.json.
Ensuite, nous pouvons utiliser la commande suivante pour les utilisateurs enregistrés (utilisation de courrier recommandé) à npm référentiel:
$ npm adduser Username: mcmohd Password: Email: (this IS public) mcmohd@gmail.com
Ensuite, nous utilisons la commande suivante pour libérer le module:
$ npm publish
Si vous faites les Ă©tapes ci-dessus sont faites correctement, vous pouvez utiliser la mĂȘme chose avec d'autres modules Ă installer npm.
Le numéro de version
NPM télécharger et utiliser le code sera libéré lorsqu'il est exposé au numéro de version. NPM utilisant sémantique numéro de version pour gérer le code, ici briÚvement.
Sémantique version est divisée en trois XYZ, représentant le numéro de version majeure, mineure numéro de version et la version du patch numéro. Lorsque le changement de code, le numéro de version de la mise à jour selon les principes suivants.
- Si seulement corrige bug, vous devez mettre Ă jour le bit Z.
- Si vous ĂȘtes une nouvelle fonctionnalitĂ©, mais rĂ©trocompatible, il doit ĂȘtre mis Ă jour Y bits.
- S'il y a de grands changements, pas vers le bas compatibles, il doit ĂȘtre mis Ă jour la position X.
Avec cette assurance aprÚs le numéro de version, dans un communiqué dépendre de paquets tiers, en plus de compter sur un numéro de version fixe, mais dépend également de toute une gamme de numéros de version. Par exemple, "argv": "0.0.x" dépend de la série 0.0.x représente la derniÚre version de argv.
Toutes les versions prennent en charge plage de numéros de ciblage NPM peut consulter la documentation officielle .
commandes courantes NMP
En plus de la section de ce chapitre, NPM fournit également un grand nombre de fonctionnalités, package.json a également de nombreux autres domaines utiles.
En plus de la npmjs.org/doc/ vérifier la documentation officielle, mais voici quelques - uns couramment utilisé les commandes NPM.
NPM offre beaucoup de commandes, telles que l'installation et de publier, en utilisant npm aide pour voir toutes les commandes.
NPM offre beaucoup de commandes, telles que l'
install
et lapublish
, en utilisantnpm help
pour voir toutes les commandes.Utilisez
npm help <command>
pour afficher l' aide détaillée pour une commande, commenpm help install
.Dans
package.json
utiliser le répertoire suivantnpm install . -g
Peut ĂȘtre installĂ© localement sur le programme de ligne de commande de courant qui peut ĂȘtre utilisĂ© pour les tests locaux avant la libĂ©ration.Utilisez
npm update <package>
peut mettre le répertoire courantnode_modules
sous - répertoire à l' intérieur du module correspond à la derniÚre version.Utilisez
npm update <package> -g
peut correspondre à un programme de ligne de commande globalement installé la mise à jour vers la derniÚre version.Utilisez
npm cache clear
peut effacer NPM cache local, de traiter avec le mĂȘme numĂ©ro de version pour une nouvelle balises de libĂ©ration.Utilisez
npm unpublish <package>@<version>
> peut ĂȘtre rĂ©voquĂ©e post a publiĂ© une version de leur propre code.
Utilisez le miroir Taobao NPM
Nous savons tous que l'utilisation directe interne de npm officielle miroir est trÚs lent, il est recommandé d'utiliser un miroir Taobao NPM.
Taobao NPM est une image complÚte de miroir npmjs.org, vous pouvez utiliser ceci à la place de la version officielle (en lecture seule), la fréquence de synchronisation actuellement de 10 minutes afin d'assurer autant que possible de se synchroniser avec le service officiel.
Vous pouvez utiliser CNPM personnalisé Taobao (support de compression gzip) de l'outil de ligne de commande au lieu de la npm par défaut:
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
Ce module peut ĂȘtre installĂ© Ă l'aide des commandes CNPM:
$ cnpm install [name]
Plus d' informations peuvent ĂȘtre trouvĂ©es: http://npm.taobao.org/ .