Latest web development tutorials

NPM usar Introdução

NPM é acompanhado ferramentas de gerenciamento de pacotes NodeJS instalados juntos, podem resolver muitos problemas NodeJS código para implantação em cenários de uso comum são os seguintes:

  • NPM permite aos usuários baixar do servidor para os pacotes de terceiros escritos por outras pessoas para uso local.
  • Ele permite aos usuários fazer download e instalar o programa de linha de comando escrito por outra pessoa para usar o servidor local a partir do NPM.
  • Ele permite aos usuários escrever seu próprio programa de pacote ou linha de comandos enviados para o servidor para outros usarem NPM.

Uma vez que a nova versão do nodejs ter NPM integrado, por isso antes NPM também ser instalado. Você também pode entrar no"NPM -v" para testar se uma instalação bem-sucedida.O comando a seguir, versão aparece a instalação rápida foi bem-sucedida:

$ npm -v
2.3.0

Se você instalar uma versão mais antiga do NPM, ele pode ser facilmente atualizado através de MPN de comando, o comando é o seguinte:

$ 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 o sistema de janela, use o seguinte comando:

npm install npm -g

NPM instalar usando o módulo de comando

NPM instalar Node.js sintaxe módulo é como se segue:

$ npm install <Module Name>

Os exemplos a seguir, usamos o comando para instalar NPM quadro comum módulo web Node.jsexpressa:

$ npm install express

Uma vez instalado, expressar o pacote é colocado no diretório node_modules no diretório do projeto, de modo que o código só atravésrequire ( 'express') como forma, sem especificar o caminho para pacotes de terceiros.

var express = require('express');

instalação global e instalação local

NPM instalar o pacote em uma instalação local (local), a instalação global (global) são dois, bata a partir de uma linha de comando, a única diferença é que não há -g somente, tais como

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

Se o seguinte erro:

npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 

solução:

$ npm config set proxy null

Instalação local

  • 1. Coloque o pacote de instalação colocada nas ./node_modules (diretório onde o comando está sendo executado NPM), se não diretório node_modules irá gerar no directório de execução do comando NPM o diretório atual node_modules.
  • 2. pode ser introduzido pacote instalado localmente através de require ().

Instalação mundial

  • 1. Coloque o pacote de instalação colocada no usr / local / ou o nó do diretório de instalação.
  • 2. Você pode usar diretamente na linha de comando.

Se você quer ter ambos os recursos, você precisa instalá-lo em dois lugares ou usar o link NPM.

Em seguida, usamos a instalação global expresso

$ npm install express -g

O processo de instalação o seguinte resultado, a primeira linha de número de versão de saída e o local de instalação do 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])

Você pode usar o seguinte comando para visualizar todos os módulos instalados globais:

$ npm ls -g

Use package.json

package.json localizado no módulo de directoria, define as propriedades do pacote. Vamos olhar para o node_modules / conteúdo expresso / package.json arquivo package.json pacote expresso implantada:

{
  "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!"
}

Descrição Package.json Property

  • Nome - o nome do pacote.

  • versão - o número da versão do pacote.

  • Descrição - descrição do pacote.

  • pacote de URL do site oficial- homepage.

  • autor - autor do nome do pacote.

  • Outros contribuintes nomes pacote- contribuidores.

  • dependências - lista de dependências.Se as dependências não são instalados, NPM irá instalar automaticamente os pacotes dependentes no diretório node_module.

  • tipo áreas de armazenamento de código de pacote, seja git ou svn, git disponível no Github- repositório.

  • principal - principal campo é um ID de módulo, que é um ponteiro para um grande projeto de seu programa.Ou seja, se você arrumar nome expressa, então o usuário para instalá-lo e, em seguida, require ( "expresso").

  • palavras-chave - palavra-chave


módulo de descarga

Podemos usar o seguinte comando para desinstalar módulos Node.js.

$ npm uninstall express

Após a desinstalação, você pode ir para o pacote / node_modules / catálogo próxima está lá, ou use o seguinte comando:

$ npm ls

Módulo de atualização

Podemos usar o seguinte comando para atualizar o módulo:

$ npm update express

Módulo Pesquisa

Use os seguintes módulos de busca:

$ npm search express

Criar um módulo

Criar um módulo, o arquivo package.json é essencial. Podemos usar NPM gerar o arquivo package.json, o arquivo resultante contém os 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

A informação acima, você precisa inserir sua própria situação. Após a entrada final "sim" irá gerar arquivo package.json.

Então, podemos usar o seguinte comando para usuários registrados (uso de correio registado) no repositório NPM:

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

Em seguida, usamos o seguinte comando para liberar o módulo:

$ npm publish

Se você fizer as etapas acima são feito corretamente, você pode usar o mesmo com outros módulos para instalar NPM.


O número de versão

NPM baixar e usar o código será liberado quando exposto ao número da versão. NPM usando o número da versão semântica para gerenciar o código, aqui brevemente.

versão semântica é dividido em três XYZ, que representa o número de versão principal, menor número da versão e versão do patch número. Quando a alteração de código, o número da versão da actualização de acordo com os seguintes princípios.

  • Se apenas correções de bugs, você precisa atualizar o bit Z.
  • Se você é um novo recurso, mas compatível, ele precisa ser atualizado pedaços Y.
  • Se há grandes mudanças, não para baixo compatível, ele precisa ser atualizado posição X.

Com esta garantia após o número da versão, em um comunicado dependem de pacotes de terceiros, além de contar com um número de versão fixa, mas também depende de uma série de números de versão. Por exemplo, "argv": "0.0.x" depende da série 0.0.x representa a mais recente versão do argv.

Todas as versões suportam intervalo de números de segmentação NPM pode visualizar a documentação oficial .


comandos comuns NPM

Além da seção neste capítulo, NPM também fornece uma grande quantidade de recursos, package.json também tem muitos outros campos úteis.

Além do npmjs.org/doc/ checar a documentação oficial, mas, em seguida, aqui estão alguns comumente usado comandos NPM.

NPM fornece uma série de comandos, como instalar e publicar, utilizando NPM ajuda para ver todos os comandos.

  • NPM fornece uma série de comandos, como install e publish , utilizando npm help para ver todos os comandos.

  • Use npm help <command> para exibir ajuda detalhada de um comando, como npm help install .

  • Em package.json usar o seguinte diretório npm install . -g Pode ser instalado localmente no programa de linha de comando atual que pode ser usado para os testes locais antes do lançamento.

  • Use npm update <package> pode colocar o diretório atual node_modules subdiretório dentro do módulo corresponde à versão mais recente.

  • Use npm update <package> -g pode corresponder a um programa de linha de comando instalados globalmente atualização para a versão mais recente.

  • Use npm cache clear pode limpar NPM cache local, para lidar com o mesmo número de versão para uma nova tags de lançamento.

  • Use npm unpublish <package>@<version> > pode ser revogada Publicar lançou uma versão do seu próprio código.


Use espelho Taobao NPM

Nós todos sabemos que o uso direto doméstica de NPM oficial espelho é muito lento, não é recomendado o uso de espelho Taobao NPM.

Taobao NPM é uma imagem espelhada npmjs.org completa, você pode usar isso em vez de a versão oficial (somente leitura), atualmente a sincronização frequência de 10 minutos, a fim de garantir, tanto quanto possível para sincronizar com o serviço oficial.

Você pode usar Taobao CNPM personalizado (suporte de compressão gzip) ferramenta de linha de comando em vez de o MPN padrão:

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

Este módulo pode ser instalado usando comandos CNPM:

$ cnpm install [name]

Mais informações podem ser encontradas: http://npm.taobao.org/ .