Latest web development tutorials

НПМ использовать Введение

НПМ сопровождается NodeJS инструменты управления пакетами, установленные вместе, могут решить многие проблемы NodeJS код для развертывания на общих сценариев использования являются следующие:

  • NPM позволяет пользователям загружать с сервера сторонних пакетов, написанных другими для местного использования.
  • Это позволяет пользователям загружать и устанавливать программу командной строки, написанную кем-то еще, чтобы использовать локальный сервер от НПМ.
  • Она позволяет пользователям создавать свои собственные программы пакета или командной строки, загруженными на сервер для использования другими НПМ.

Так как новая версия nodejs интегрировали НПМ, поэтому перед НПМ также быть установлен. Кроме того, можно ввести"NPM -v" , чтобы проверить , является ли успешной установки.Следующая команда, версия появится приглашение установка прошла успешно:

$ npm -v
2.3.0

Если установить старую версию НПМ, она легко может быть повышен с помощью НПМ команды, команда выглядит следующим образом:

$ 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

Если система Window, используйте следующую команду:

npm install npm -g

НПМ установить с помощью модуля командной

NPM установить Node.js синтаксис модуля выглядит следующим образом:

$ npm install <Module Name>

Ниже приведены примеры, мы используем команду для установки NPM общие рамки веб - модуля Node.jsэкспресс:

$ npm install express

После установки, экспресс пакет помещается в каталог node_modules в каталоге проекта, поэтому код только черезтребуют ( «экспресс») подобным же образом, без указания пути к сторонних пакетов.

var express = require('express');

Глобальная установка и локальная установка

NPM установить пакет в локальной установки (локальный), глобальную установку (глобальные) два, стучите из командной строки, с той лишь разницей нет -g только, например,

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

Если следующее сообщение об ошибке:

npm err! Error: connect ECONNREFUSED 127.0.0.1:8087 

Решение:

$ npm config set proxy null

Локальная установка

  • 1. Поместите установочный пакет помещается в ./node_modules (каталог, в котором команда выполняется НПМ), если не node_modules каталог будет генерировать в текущем каталоге node_modules каталога выполнения команды НПМ.
  • 2. может быть введен локально установленный пакет через требуют ().

Глобальная установка

  • 1. Поместите установочный пакет помещается в / USR / локальный или вашего узла каталога установки.
  • 2. Вы можете использовать непосредственно в командной строке.

Если вы хотите иметь обе эти функции, необходимо установить его в двух местах или использовать НПМ ссылку.

Далее, мы используем глобальные установки экспресс

$ npm install express -g

Процесс установки следующий вывод, первая строка вывода числа версий и место установки модуля.

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

Вы можете использовать следующую команду, чтобы просмотреть все глобальные установленные модули:

$ npm ls -g

Использование package.json

package.json находится в модуле каталога, определяет свойства пакета. Давайте посмотрим на файл package.json экспресс-пакет, расположенный 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 Описание недвижимости

  • имя - имя пакета.

  • версия - номер версии пакета.

  • Описание - описание пакета.

  • Официальный пакет URL сайта- главная.

  • автор - автор имени пакета.

  • Другими участниками названия пакета- вкладчики.

  • Зависимости - список зависимостей.Если зависимости не установлены, NPM автоматически установит зависимые пакеты в node_module каталоге.

  • хранилище - тип зоны хранения пакет код, либо мерзавец или SVN, Git доступен на GitHub.

  • Основной - главное поле представляет собой идентификатор модуля, который является указателем на крупный проект вашей программы.То есть, если ты собирай имя экспресс, то пользователь, чтобы установить его, а затем требуют ( "экспресс").

  • Ключевые слова - Ключевое слово


модуль Разгрузка

Мы можем использовать следующую команду для удаления модулей Node.js.

$ npm uninstall express

После удаления, вы можете перейти к следующему пакету / node_modules / каталоге есть, или используйте следующую команду:

$ npm ls

Модуль обновления

Мы можем использовать следующую команду для обновления модуля:

$ npm update express

Модуль поиска

Используйте следующие поисковые модули:

$ npm search express

Создайте модуль

Создайте модуль, package.json файл имеет важное значение. Мы можем использовать НПМ генерировать файл package.json, результирующий файл содержит основные результаты.

$ 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

Приведенная выше информация, вам нужно ввести свой собственный ситуацию. После окончательного ввода "да" будет генерировать файл package.json.

Тогда мы можем использовать следующую команду для зарегистрированных пользователей (использование заказная почта) в хранилище НПМ:

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

Далее, мы используем следующую команду, чтобы освободить модуль:

$ npm publish

Если вы делаете вышеуказанные шаги выполнены правильно, вы можете использовать то же самое с другими модулями для установки НПМ.


Номер версии

НПМ скачать и использовать код будет выпущен при воздействии на номер версии. НПМ с использованием семантического номер версии для управления кодом, здесь кратко.

Семантика версия делится на три XYZ, представляющие основной номер версии, дополнительный номер версии и версия патча номер. Когда изменение кода, номер версии обновления в соответствии со следующими принципами.

  • Если только исправляет ошибку, вам необходимо обновить Z бит.
  • Если это новая функция, но обратная совместимость, она должна быть обновлена ​​Y битов.
  • Если есть большие изменения, а не вниз совместимы, то необходимо обновить позицию X.

С помощью этой гарантии после номера версии, в заявлении зависит от сторонних пакетов, в дополнение к полагаться на фиксированный номер версии, но и зависит от целого ряда номеров версий. Например, "ARGV": "0.0.x" зависит от серии 0.0.x представляет собой последнюю версию ARGV.

Все версии поддерживают диапазон номеров таргетинга НПМ можно просмотреть официальную документацию .


общие команды НПМ

В дополнение к разделу в этой главе, НПМ также предоставляет множество функций, package.json также имеет много других полезных полей.

В дополнение к npmjs.org/doc/ проверить официальную документацию, но вот некоторые наиболее часто используемые команды НПМ.

NPM предоставляет множество команд, таких как устанавливать и публиковать, используя НПМ помощь, чтобы увидеть все команды.

  • NPM предоставляет множество команд, таких , как install и publish , используя npm help , чтобы увидеть все команды.

  • Используйте npm help <command> , чтобы просмотреть подробную справку по команде, например, npm help install .

  • В package.json использовать следующий каталог npm install . -g Может быть установлен локально на текущей программе командной строки , которая может быть использована для локального тестирования перед выпуском.

  • Используйте npm update <package> можно поместить текущий каталог node_modules подкаталог внутри модуля соответствует последней версии.

  • Используйте npm update <package> -g может соответствовать программе командной строки на глобальном уровне установки обновления до последней версии.

  • Использование npm cache clear может очистить НПМ локальный кэш, чтобы иметь дело с тем же номером версии для нового выпуска тегов.

  • Используйте npm unpublish <package>@<version> > может быть отозвана Post выпустила версию своего собственного кода.


Используйте Taobao НПМ зеркало

Мы все знаем, что внутреннее прямое использование официального зеркала НПМ очень медленно, то рекомендуется использовать Taobao НПМ зеркало.

Taobao НПМ является полным npmjs.org зеркальное изображение, вы можете использовать это вместо официальной версии (только для чтения), в настоящее время синхронизации частоты 10 минут для того, чтобы обеспечить, насколько это возможно синхронизировать с официальной службой.

Вы можете использовать Taobao пользовательских cnpm (GZIP поддержки сжатия) инструмент командной строки вместо НПМ по умолчанию:

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

Этот модуль может быть установлен с помощью команды cnpm:

$ cnpm install [name]

Более подробную информацию можно найти: http://npm.taobao.org/ .