Latest web development tutorials

NPM verwenden Einführung

NPM NodeJS Paket-Management-Tools zusammen installiert begleitet, kann für den Einsatz auf gemeinsame Einsatzszenarien viele Probleme NodeJS Code lösen sind die folgenden:

  • NPM ermöglicht es Benutzern, die vom Server an die Pakete von Drittanbietern, die andere für den lokalen Gebrauch geschrieben zum Download bereit.
  • Es erlaubt dem Anwender das Kommandozeilen-Programm von jemandem geschrieben zum Herunterladen und Installieren sonst den lokalen Server aus der NPM zu verwenden.
  • Es ermöglicht Benutzern, ihre eigenen Paket oder Kommandozeilen-Programm auf dem Server für andere hochgeladen zu schreiben NPM zu verwenden.

Da die neue Version von NodeJS npm integriert haben, so vor npm auch installiert werden. Sie können auch die"npm -v" eingeben , ob eine erfolgreiche Installation zu testen.Der folgende Befehl, Version erscheint prompt Installation erfolgreich war:

$ npm -v
2.3.0

Wenn Sie eine ältere Version von NPM installieren, kann es leicht über npm auf Befehl aktualisiert werden, wird der Befehl wie folgt:

$ sudo npm install npm -g
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/local/lib/node_modules/npm

Wenn Window-System, verwenden Sie den folgenden Befehl ein:

npm install npm -g

NPM installieren Sie das Kommandomodul mit

NPM installieren Node.js Modul Syntax lautet wie folgt:

$ npm install <Module Name>

Die folgenden Beispiele verwenden wir den Befehl NPM gemeinsamen Rahmen Node.js Web - ModulExpress zu installieren:

$ npm install express

Einmal installiert, zum Ausdruck bringen das Paket in dem node_modules Verzeichnis im Projektverzeichnis platziert wird, so dass der Code nurverlangen , durch ( 'auszudrücken')artig, ohne den Pfad zu Pakete von Drittanbietern angeben.

var express = require('express');

Globale Installation und lokale Installation

NPM-Paket in eine lokale Installation (lokal) installieren, die globale Installation (global) sind zwei, klopfen von einer Befehlszeile, der einzige Unterschied ist, gibt es keine -g ist nur, wie

npm install express          # 本地安装
npm install express -g   # 全局安装

Wenn der folgende Fehler:

npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 

Lösung:

$ npm config set proxy null

Lokale Installation

  • 1. Legen Sie die in den ./node_modules platziert Installationspaket (Verzeichnis, in dem der Befehl npm ausgeführt wird), wenn nicht node_modules Verzeichnis im aktuellen Verzeichnis zu generieren node_modules npm Befehlsausführung Verzeichnis.
  • 2. kann lokal installierte Paket durch eingeführt werden require ().

globale Installations

  • 1. Legen Sie die im Verzeichnis / usr / local oder Installationsverzeichnis Knoten platziert Installationspaket.
  • 2. Sie können direkt auf der Kommandozeile verwenden.

Wenn Sie beide Funktionen haben möchten, müssen Sie es an zwei Stellen zu installieren oder npm Link verwenden.

Als nächstes benutzen wir die globale installieren Express

$ npm install express -g

Der Installationsprozess die folgende Ausgabe, die erste Zeile der Ausgabe der Versionsnummer und Einbauort des Moduls.

[email protected] node_modules/express
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])

Sie können den folgenden Befehl verwenden, um alle global installierten Module anzuzeigen:

$ npm ls -g

Verwenden Sie package.json

package.json im Verzeichnismodul befindet, definiert die Eigenschaften des Pakets. Schauen wir uns die Datei package.json Express-Paket befindet node_modules / express / package.json Inhalt:

{
  "name": "express",
  "description": "Fast, unopinionated, minimalist web framework",
  "version": "4.13.3",
  "author": {
    "name": "TJ Holowaychuk",
    "email": "[email protected]"
  },
  "contributors": [
    {
      "name": "Aaron Heckmann",
      "email": "[email protected]"
    },
    {
      "name": "Ciaran Jessup",
      "email": "[email protected]"
    },
    {
      "name": "Douglas Christopher Wilson",
      "email": "[email protected]"
    },
    {
      "name": "Guillermo Rauch",
      "email": "[email protected]"
    },
    {
      "name": "Jonathan Ong",
      "email": "[email protected]"
    },
    {
      "name": "Roman Shtylman",
      "email": "[email protected]"
    },
    {
      "name": "Young Jae Sim",
      "email": "[email protected]"
    }
  ],
  "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": "[email protected]",
  "_shasum": "ddb2f1fb4502bf33598d2b032b037960ca6c80a3",
  "_from": "express@*",
  "_npmVersion": "1.4.28",
  "_npmUser": {
    "name": "dougwilson",
    "email": "[email protected]"
  },
  "maintainers": [
    {
      "name": "tjholowaychuk",
      "email": "[email protected]"
    },
    {
      "name": "jongleberry",
      "email": "[email protected]"
    },
    {
      "name": "dougwilson",
      "email": "[email protected]"
    },
    {
      "name": "rfeng",
      "email": "[email protected]"
    },
    {
      "name": "aredridel",
      "email": "[email protected]"
    },
    {
      "name": "strongloop",
      "email": "[email protected]"
    },
    {
      "name": "defunctzombie",
      "email": "[email protected]"
    }
  ],
  "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 Beschreibung

  • Name - der Name des Pakets.

  • Version - die Versionsnummer des Pakets.

  • Beschreibung - Beschreibung des Pakets.

  • offizielle Website - URL - Paket- Homepage.

  • Autor - Autor des Paketnamen.

  • Weitere Beteiligte Namen Paket- Mitwirkenden.

  • Abhängigkeiten - Abhängigkeiten Liste.Wenn die Abhängigkeiten nicht installiert sind, wird npm automatisch abhängige Pakete in node_module Verzeichnis installieren.

  • Repository - Typ Paketcode Speicherbereiche, entweder git oder svn, git auf Github.

  • Haupt - Hauptfeld ist ein Modul - ID, die ein Zeiger auf ein Großprojekt des Programms ist.Das heißt, wenn Sie Namen express packen, dann der Benutzer es zu installieren, und dann verlangen ( "Express").

  • Keywords - Keyword


Entladen Modul

Wir können den folgenden Befehl verwenden, um Node.js Module deinstallieren.

$ npm uninstall express

Nach der Deinstallation können Sie zum nächsten / node_modules / Katalog-Paket gehen, ist es, oder den folgenden Befehl verwenden:

$ npm ls

Update-Modul

Wir können den folgenden Befehl verwenden, um das Modul zu aktualisieren:

$ npm update express

Suchmodul

Verwenden Sie die folgenden Suchmodule:

$ npm search express

Erstellen Sie ein Modul

Erstellen Sie ein Modul, package.json Datei ist von wesentlicher Bedeutung. Wir können NPM verwenden package.json Datei erzeugen, die resultierende Datei enthält die grundlegenden Ergebnisse.

$ 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.w3big.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.w3big.com)",
  ……
}


Is this ok? (yes) yes

Die oben genannten Informationen, müssen Sie Ihre eigene Situation einzugeben. Nach der letzten Eingabe "Ja" wird package.json Datei generieren.

Dann können wir den folgenden Befehl für registrierte Benutzer (Verwendung Einschreiben) in NPM-Repository verwenden:

$ npm adduser
Username: mcmohd
Password:
Email: (this IS public) [email protected]

Als nächstes benutzen wir den folgenden Befehl, um das Modul zu lösen:

$ npm publish

Wenn Sie die oben genannten Schritte tun es richtig gemacht sind, können Sie das gleiche mit anderen Modulen verwenden, um npm installieren.


Die Versionsnummer

NPM herunterladen und den Code verwenden, wenn der Versionsnummer ausgesetzt freigegeben werden. NPM mit semantischen Versionsnummer Code zu verwalten, hier kurz.

Semantics Version gliedert sich in drei XYZ, die die Hauptversionsnummer, kleinere Versionsnummer und Patch-Versionsnummer. Wenn die Codeänderung, die Versionsnummer des Updates nach den folgenden Grundsätzen.

  • Wenn nur Fehler behebt, benötigen Sie das Z-Bit zu aktualisieren.
  • Wenn Sie ein neues Feature, aber rückwärtskompatibel sind, muss es zu Y Bits aktualisiert werden.
  • Wenn es große Veränderungen sind nicht abwärtskompatibel, muss er die X-Position aktualisiert werden.

Mit dieser Versicherung, nachdem der Versionsnummer, die in einer Erklärung hängen von Pakete von Drittanbietern, aber auch auf einer festen Versionsnummer zu verlassen, sondern hängt auch von einer Reihe von Versionsnummern. Zum Beispiel "argv": "0.0.x" ist abhängig von der 0.0.x-Serie die neueste Version von argv darstellt.

Alle Versionen unterstützen Nummernbereich Targeting NPM können sehen die offizielle Dokumentation .


NPM häufig verwendete Befehle

Neben dem in diesem Kapitel, NPM bietet auch eine Menge Funktionen, package.json hat auch viele andere nützliche Felder aus.

Neben der npmjs.org/doc/ die offizielle Dokumentation zu überprüfen, aber dann sind hier einige häufig Befehle NPM verwendet.

NPM bietet viele Befehle, wie installieren und zu veröffentlichen, NPM-Hilfe alle Befehle zu sehen.

  • NPM bietet viele Befehle, wie install und zu publish , mit npm help alle Befehle zu sehen.

  • Verwenden Sie npm help <command> ausführliche Hilfe für einen Befehl anzuzeigen, wie npm help install .

  • In package.json verwenden das folgende Verzeichnis npm install . -g Lokal auf dem aktuellen Kommandozeilen - Programm werden installiert , die für die lokale Prüfung vor der Freigabe verwendet werden kann.

  • Verwenden Sie npm update <package> kann das aktuelle Verzeichnis setzen node_modules Unterverzeichnis innerhalb des Moduls auf die neueste Version entspricht.

  • Verwenden Sie npm update <package> -g kann mit einem Kommandozeilen - Programm entsprechen global Update auf die neueste Version installiert ist .

  • Verwenden Sie npm cache clear kann NPM lokalen Cache zu löschen, mit der gleichen Versionsnummer für ein neues Release - Tags zu beschäftigen.

  • Verwenden Sie npm unpublish <package>@<version> > kann widerrufen werden Beitrag veröffentlicht eine Version ihres eigenen Code.


Verwenden Sie Taobao NPM Spiegel

Wir alle wissen, dass die inländischen direkte Verwendung von offiziellen Spiegel npm sehr langsam, es wird empfohlen, Taobao NPM Spiegel zu verwenden.

Taobao NPM ist ein komplettes npmjs.org Spiegelbild, können Sie diese verwenden, anstatt der offiziellen Version (read-only), die derzeit die Synchronisierung Frequenz von 10 Minuten, um so weit wie möglich zu gewährleisten, mit dem offiziellen Dienst zu synchronisieren.

Sie können Taobao benutzerdefinierte CNPM (gzip-Kompression Unterstützung) Kommandozeilen-Tool anstelle des Standard-npm verwenden:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

Dieses Modul kann mit CNPM Kommandos installiert werden:

$ cnpm install [name]

Weitere Informationen finden Sie hier : http://npm.taobao.org/ .