Latest web development tutorials

NPM usare Introduzione

NPM è accompagnato NodeJS strumenti di gestione dei pacchetti installati insieme, può risolvere molti problemi NodeJS codice per la distribuzione su scenari di utilizzo più comuni sono i seguenti:

  • NPM permette agli utenti di scaricare dal server per i pacchetti di terze parti scritte da altri per uso locale.
  • Esso consente agli utenti di scaricare e installare il programma da riga di comando scritto da qualcun altro di utilizzare il server locale dal NPM.
  • Esso consente agli utenti di scrivere il proprio programma di pacchetto o riga comandi caricati sul server per gli altri a utilizzare NPM.

Dal momento che la nuova versione di nodejs ha integrato NPM, quindi prima di NPM anche essere installato. È anche possibile inserire il"NPM -v" per verificare se una corretta installazione.Il seguente comando, la versione appare installazione rapida ha avuto successo:

$ npm -v
2.3.0

Se si installa una versione precedente di NPM, può essere facilmente aggiornato attraverso NPM al comando, il comando è il seguente:

$ 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

Se il sistema Window, utilizzare il seguente comando:

npm install npm -g

NPM installare utilizzando il modulo di comando

npm installare sintassi modulo Node.js è la seguente:

$ npm install <Module Name>

Gli esempi che seguono, si usa il comando per installare NPM quadro comune modulo web Node.jsespresso:

$ npm install express

Una volta installato, esprimono il pacchetto viene inserito nella directory node_modules nella directory del progetto, in modo che il codicerichiede solo attraverso ( 'esprimere')come modo, senza specificare il percorso di pacchetti di terze parti.

var express = require('express');

installazione globale e installazione locale

npm pacchetto di installazione in un'installazione locale (locale), l'installazione globale (global) sono due, battere da una riga di comando, l'unica differenza è che non c'è solo -g, come ad esempio

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

Se il seguente errore:

npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 

soluzione:

$ npm config set proxy null

Installazione locale

  • 1. Inserire il pacchetto di installazione posto nelle ./node_modules (directory in cui il comando è in esecuzione NPM), se non directory node_modules genererà nella directory comando di esecuzione NPM nella directory corrente node_modules.
  • 2. possono essere introdotti pacchetto installato in locale tramite richiedono ().

Installazione globale

  • 1. Inserire il pacchetto di installazione posizionato in / usr / local o il nodo directory di installazione.
  • 2. È possibile utilizzare direttamente sulla riga di comando.

Se si desidera avere entrambe le caratteristiche, è necessario installare in due punti o utilizzare collegamento NPM.

Successivamente, si usa il globale installare espresso

$ npm install express -g

Il processo di installazione l'uscita seguente, la prima riga del numero di versione ed luogo di installazione del modulo.

[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])

È possibile utilizzare il seguente comando per visualizzare tutti i moduli installati a livello mondiale:

$ npm ls -g

Usa package.json

package.json situato nel modulo directory, definisce le proprietà del pacchetto. Diamo un'occhiata a / espresso contenuto pacchetto espresso file di package.json trova node_modules / package.json:

{
  "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 Proprietà Descrizione

  • nome - il nome del pacchetto.

  • versione - il numero di versione del pacchetto.

  • Descrizione - descrizione del pacchetto.

  • pacchetto URL del sito web ufficiale- home page.

  • autore - autore del nome del pacchetto.

  • Altri collaboratori nomi pacchetto- collaboratori.

  • dipendenze - Lista dipendenze.Se le dipendenze non sono installati, NPM installa automaticamente i pacchetti dipendenti nella directory node_module.

  • aree di stoccaggio di tipo codice di pacchetto, sia git o SVN, git disponibile su Github- repository.

  • principale - campo principaleè un ID modulo, che è un puntatore a un grande progetto del programma. Cioè, se si pack nome espresso, quindi l'utente a installarlo, e quindi richiedono ( "express").

  • parole chiave - chiave di


modulo di scarico

Siamo in grado di utilizzare il seguente comando per disinstallare i moduli Node.js.

$ npm uninstall express

Dopo la disinstallazione, si può andare al prossimo pacchetto / node_modules / catalogo è lì, o si utilizza il seguente comando:

$ npm ls

Modulo di aggiornamento

Siamo in grado di utilizzare il seguente comando per aggiornare il modulo:

$ npm update express

Modulo di ricerca

Utilizzare i seguenti moduli di ricerca:

$ npm search express

Creare un modulo

Creare un modulo, il file package.json è essenziale. Possiamo usare NPM generare file package.json, il file risultante contiene i risultati di 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.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

Le informazioni di cui sopra, è necessario inserire la propria situazione. Dopo l'ingresso finale "sì" genererà il file package.json.

Poi possiamo utilizzare il seguente comando per gli utenti registrati (uso le lettere raccomandate) in repository NPM:

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

Poi si usa il seguente comando per rilasciare il modulo:

$ npm publish

Se fate i passaggi precedenti sono fatto correttamente, è possibile utilizzare lo stesso con altri moduli da installare NPM.


Il numero di versione

NPM scaricare e utilizzare il codice verrà rilasciato quando esposti al numero di versione. NPM con numero di versione semantica per la gestione del codice, qui brevemente.

versione semantica è diviso in tre XYZ, che rappresenta il numero di versione principale, minore il numero di versione e la versione del numero di patch. Quando la modifica del codice, il numero di versione dell'aggiornamento secondo i seguenti principi.

  • Se solo correzioni di bug, è necessario aggiornare il bit Z.
  • Se si è una nuova funzionalità, ma compatibile, ha bisogno di essere aggiornato bit Y.
  • Se ci sono grandi cambiamenti, non verso il basso compatibile, ha bisogno di essere aggiornato posizione X.

Con questa certezza, dopo il numero di versione, in una dichiarazione dipendere da pacchetti di terze parti, oltre a contare su un numero di versione fissa, ma dipende anche da una serie di numeri di versione. Per esempio "argv": "0.0.x" dipende dalla serie 0.0.x rappresenta la versione più recente di argv.

Tutte le versioni supportano la serie di numeri mira NPM possono visualizzare la documentazione ufficiale .


comandi comuni NPM

Oltre alla sezione di questo capitolo, NPM offre anche un sacco di funzioni, package.json ha anche molti altri campi utili.

Oltre al npmjs.org/doc/ controllare la documentazione ufficiale, ma poi qui ci sono alcune comunemente utilizzati comandi NPM.

NPM fornisce un sacco di comandi, come installare e pubblicare, utilizzando NPM aiuto per vedere tutti i comandi.

  • NPM fornisce un sacco di comandi, come ad esempio install e publish , utilizzando npm help per vedere tutti i comandi.

  • Utilizzare npm help <command> per visualizzare la guida dettagliata per un comando, come npm help install .

  • In package.json utilizzare il seguente directory npm install . -g Può essere installato in locale sul programma riga di comando corrente che può essere utilizzato per i test locali prima del rilascio.

  • Utilizzare npm update <package> può mettere la directory corrente node_modules sottodirectory all'interno del modulo corrisponde alla versione più recente.

  • Utilizzare npm update <package> -g può corrispondere ad un programma a riga di comando installato a livello globale l'aggiornamento alla versione più recente.

  • Utilizzare npm cache clear può cancellare NPM cache locale, a che fare con lo stesso numero di versione per un nuovo tag di rilascio.

  • Utilizzare npm unpublish <package>@<version> > può essere revocato messaggio rilasciato una versione del proprio codice.


Utilizzare specchio Taobao NPM

Sappiamo tutti che l'uso diretto domestico di NPM ufficiale specchio è molto lento, ci si consiglia di utilizzare lo specchio Taobao NPM.

Taobao NPM è un'immagine completa specchio npmjs.org, è possibile utilizzare questo invece della versione ufficiale (in sola lettura), attualmente sincronizzare la frequenza di 10 minuti, al fine di assicurare, per quanto possibile sincronizzare con il servizio ufficiale.

È possibile utilizzare Taobao CNPM personalizzato (supporto di compressione gzip) strumento da riga di comando al posto del NPM di default:

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

Questo modulo può essere installato utilizzando i comandi CNPM:

$ cnpm install [name]

Maggiori informazioni possono essere trovate: http://npm.taobao.org/ .