Latest web development tutorials

NPM utilice Introducción

NGP se acompaña nodejs herramientas de gestión de paquetes instalados juntos, pueden resolver muchos problemas nodejs código para la implementación en escenarios de uso común son los siguientes:

  • NPM permite a los usuarios descargar desde el servidor a los paquetes de terceros escritos por otros para el uso local.
  • Permite a los usuarios para descargar e instalar el programa de línea de comandos escrito por otra persona para utilizar el servidor local desde el MNP.
  • Permite a los usuarios escribir su propio programa o paquete de línea de comandos cargado en el servidor para que otros utilicen la NGP.

Dado que la nueva versión de nodejs han integrado la NGP, así que antes de la NGP también ser instalado. También puede entrar en el"NPM -v" para comprobar si una instalación exitosa.El siguiente comando, aparece la versión de instalación rápida se ha realizado correctamente:

$ npm -v
2.3.0

Si instala una versión anterior de la NGP, fácilmente se puede actualizar a través de la NGP, el comando es el siguiente:

$ 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

Si el sistema de ventana, utilice el siguiente comando:

npm install npm -g

Npm instalar usando el módulo de mando

NPM instalar sintaxis módulo Node.js es el siguiente:

$ npm install <Module Name>

Los siguientes ejemplos, que utilizan el comando para instalar NPM módulo web Node.js marco comúnexpresa:

$ npm install express

Una vez instalado, expresa el paquete se coloca en el directorio node_modules en el directorio del proyecto, por lo que el código sólo a travésrequire ( 'expresar') de igual manera, sin especificar la ruta de acceso a paquetes de terceros.

var express = require('express');

instalación global y la instalación local

NPM paquete de instalación en una instalación local (local), la instalación mundial (global) son dos, llamo desde una línea de comandos, la única diferencia es que no hay -g solamente, tales como

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

Si el error siguiente:

npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 

Solución:

$ npm config set proxy null

Instalación local

  • 1. Coloque el paquete de instalación se coloca en los ./node_modules (directorio en el que el comando se ejecuta NPM), si no directorio node_modules generará en el directorio de ejecución de comandos NPM el directorio actual node_modules.
  • 2. se puede introducir paquete instalado localmente a través de require ().

Instalación Global

  • 1. Coloque el paquete de instalación se coloca en el directorio / usr / local o su nodo de directorio de instalación.
  • 2. Se puede utilizar directamente en la línea de comandos.

Si usted quiere tener ambas funciones, es necesario instalarlo en dos lugares o el enlace NPM.

A continuación, utilizamos la instalación global express

$ npm install express -g

El proceso de instalación de la siguiente salida, la primera línea de salida de número de versión y la ubicación de instalación del módulo.

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

Se puede utilizar el siguiente comando para ver todos los módulos instalados a nivel mundial:

$ npm ls -g

uso package.json

package.json situado en el módulo de directorio, define las propiedades del paquete. Veamos el node_modules / expresa el contenido del archivo package.json paquete expreso situado / 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!"
}

Descripción de la propiedad package.json

  • nombre - el nombre del paquete.

  • versión - el número de versión del paquete.

  • Descripción - descripción del paquete.

  • oficial paquete URL del sitio web- página de inicio.

  • autor - autor del nombre del paquete.

  • nombres de otros contribuyentes paquete- colaboradores.

  • - Lista dependenciasdependencias. Si las dependencias no están instalados, la NGP se instalará automáticamente los paquetes dependientes en el directorio node_module.

  • áreas de almacenamiento de tipo código de paquete, ya sea GIT o SVN, Git disponible en Github- repositorio.

  • principal - principal campo es un identificador de módulo, que es un puntero a un proyecto importante de su programa.Es decir, si pack nombre expresa, a continuación, al usuario instalar y, a continuación require ( "expresar").

  • palabras clave - palabras clave


módulo de descarga

Podemos utilizar el siguiente comando para desinstalar módulos Node.js.

$ npm uninstall express

Después de la desinstalación, puede ir al siguiente paquete / node_modules / catálogo está ahí, o que utilice el siguiente comando:

$ npm ls

Módulo de actualización

Podemos utilizar el siguiente comando para actualizar el módulo:

$ npm update express

Módulo de búsqueda

Utilice los siguientes módulos de búsqueda:

$ npm search express

Cree un módulo

Cree un módulo, archivo package.json es esencial. Podemos utilizar la NGP generar el archivo package.json, el archivo resultante contiene los resultados básicos.

$ 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

La información anterior, tiene que introducir su propia situación. Después de la entrada final "sí" va a generar el archivo package.json.

Entonces podemos usar el siguiente comando para usuarios registrados (uso del correo certificado) en el repositorio MNP:

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

A continuación, se utiliza el siguiente comando para liberar el módulo:

$ npm publish

Si lo hace los pasos anteriores se hacen correctamente, puede utilizar el mismo con otros módulos para instalar la NGP.


El número de versión

NPM descargar y utilizar el código se dará a conocer cuando se expone al número de versión. NPM utilizando el número de la versión semántica de administrar el código, aquí brevemente.

versión semántica se divide en tres XYZ, que representa el número de versión mayor, menor número de versión y la versión del parche número. Cuando el cambio de código, el número de versión de la actualización de acuerdo con los siguientes principios.

  • Si tan sólo correcciones de errores, es necesario actualizar el bit Z.
  • Si usted es una característica nueva, pero compatible con versiones anteriores, se necesita actualizarse Y bits.
  • Si hay grandes cambios, no hacia abajo compatibles, que necesita ser actualizado posición X.

Con esta seguridad después de que el número de versión, en un comunicado dependerá de paquetes de terceros, además de depender de un número de versión fija, pero también depende de una serie de números de versión. Por ejemplo "argv": "0.0.x" depende de la serie 0.0.x representa la versión más reciente de argv.

Todas las versiones compatibles con rango de números de orientación NPM puede ver la documentación oficial .


comandos comunes de la NGP

Además de la sección de este capítulo, la NGP también proporciona una gran cantidad de características, package.json también tiene muchos otros campos útiles.

Además de la npmjs.org/doc/ comprobar la documentación oficial, pero aquí están algunos de uso común comandos de la NGP.

NPM ofrece una gran cantidad de comandos, como instalar y publicar, con ayuda NPM para ver todos los comandos.

  • NPM ofrece una gran cantidad de comandos, como install y publish , con npm help para ver todos los comandos.

  • Utilice npm help <command> para ver la ayuda detallada para un comando, como npm help install .

  • En package.json utilice el siguiente directorio de npm install . -g Puede ser instalado localmente en el programa de línea de comando de la corriente que puede ser utilizado para la prueba local antes de la liberación.

  • Utilice npm update <package> puede poner el directorio actual node_modules subdirectorio dentro del módulo corresponde a la última versión.

  • Utilice npm update <package> -g puede corresponder a un programa de línea de comandos a nivel mundial la actualización a la última versión instalada.

  • Usar npm cache clear puede borrar NPM caché local, para tratar con el mismo número de versión para una nueva liberación etiquetas.

  • Utilice npm unpublish <package>@<version> > puede ser revocado Publicar lanzó una versión de su propio código.


Utilice espejo Taobao NGP

Todos sabemos que el uso directo interno de la NGP oficial espejo es muy lento, no se recomienda el uso del espejo Taobao NGP.

una imagen de espejo npmjs.org completa Taobao es NGP, puede utilizar esto en vez de la versión oficial (sólo lectura), sincronizando la frecuencia de 10 minutos con el fin de garantizar en la medida de lo posible sincronizar con el servicio oficial.

Puede utilizar Taobao CNPM personalizado (soporte de compresión gzip) herramienta de línea de comandos en lugar de la NPM por defecto:

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

Este módulo puede instalarse utilizando comandos CNPM:

$ cnpm install [name]

Más información se puede encontrar: http://npm.taobao.org/ .