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 la publish , en utilisant npm help pour voir toutes les commandes.

  • Utilisez npm help <command> pour afficher l' aide dĂ©taillĂ©e pour une commande, comme npm help install .

  • Dans package.json utiliser le rĂ©pertoire suivant npm 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 courant node_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/ .