Node.js — NPM

Node.js — NPM

От автора: Node Package Manager (NPM) предоставляет две основные функции: 1) online-хранилище для пакетов/модулей node.js, которые можно найти на search.nodejs.org; 2) утилита командной строки для установки пакетов Node.js, управления версиями и управления зависимостями пакетов Node.js.

Node js NPM поставляется в комплекте с установочным пакетом начиная с версии v0.6.3. Чтобы проверить версию Node, откройте консоль и введите следующую команду:

$ npm --version
2.7.1

Если вы используете старую версию NPM, ее можно довольно просто обновить. Просто используйте следующую команду: root:

$ sudo npm install npm -g
/usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js
npm@2.7.1 /usr/lib/node_modules/npm

Установка модулей с помощью NPM

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

$ npm install <Module Name>

Например, следующая команда – устанавливает популярный модуль фреймворка Node.js под названием express:

Фреймворк VUE JS: быстрый старт, первые результаты

Получите бесплатный курс и создайте веб-приложение на трендовой Frontend-технологии VUE JS с полного нуля

Узнать подробнее
$ npm install express

Теперь вы можете использовать этот модуль в js-файле следующим образом:

var express = require('express');

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

По умолчанию NPM устанавливает любую зависимость в локальном режиме. Локальный режим означает, что пакет устанавливается в каталоге node_modules, содержащемся в папке, где находится приложение Node. Развернутые локально пакеты доступны через метод require(). Например, когда мы установили модуль express, был создал каталог node_modules в текущем каталоге, где был установлен данный модуль.

$ ls -l
total 0
drwxr-xr-x 3 root root 20 Mar 17 02:23 node_modules

Кроме того, вы можете использовать команду npm ls, чтобы отобразить список всех локально установленных модулей. Глобально установленные пакеты/зависимости хранятся в системном каталоге. Такие зависимости могут использоваться в функции CLI (интерфейс командной строки), но не могут быть напрямую импортированы с использованием require() в приложении Node. Теперь попробуем установить модуль express с помощью глобальной установки.

$ npm install express -g

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

Node.js — NPM

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

$ npm ls -g

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

package.json располагается в корневом каталоге любого приложения/модуля Node и используется для определения свойств пакета. Давайте откроем package.json из пакета express, расположенного в node_modules/express/

{
 "name": "express",
 "description": "Fast, unopinionated, minimalist web framework",
 "version": "4.11.2",
 "author": {
 
 "name": "TJ Holowaychuk",
 "email": "tj@vision-media.ca"
 },
 
 "contributors": [{
 "name": "Aaron Heckmann",
 "email": "aaron.heckmann+github@gmail.com"
 }, 
 
 {
 "name": "Ciaran Jessup",
 "email": "ciaranj@gmail.com"
 },
 
 {
 "name": "Douglas Christopher Wilson",
 "email": "doug@somethingdoug.com"
 },
 
 {
 "name": "Guillermo Rauch",
 "email": "rauchg@gmail.com"
 },
 
 {
 "name": "Jonathan Ong",
 "email": "me@jongleberry.com"
 },
 
 {
 "name": "Roman Shtylman",
 "email": "shtylman+expressjs@gmail.com"
 },
 
 {
 "name": "Young Jae Sim",
 "email": "hanul@hanul.me"
 } ],
 "license": "MIT", "repository": {
 "type": "git",
 "url": "https://github.com/strongloop/express"
 },
 "homepage": "https://expressjs.com/", "keywords": [
 "express",
 "framework",
 "sinatra",
 "web",
 "rest",
 "restful",
 "router",
 "app",
 "api"
 ],
 "dependencies": {
 "accepts": "~1.2.3",
 "content-disposition": "0.5.0",
 "cookie-signature": "1.0.5",
 "debug": "~2.1.1",
 "depd": "~1.0.0",
 "escape-html": "1.0.1",
 "etag": "~1.5.1",
 "finalhandler": "0.3.3",
 "fresh": "0.2.4",
 "media-typer": "0.3.0",
 "methods": "~1.1.1",
 "on-finished": "~2.2.0",
 "parseurl": "~1.3.0",
 "path-to-regexp": "0.1.3",
 "proxy-addr": "~1.0.6",
 "qs": "2.3.3",
 "range-parser": "~1.0.2",
 "send": "0.11.1",
 "serve-static": "~1.8.1",
 "type-is": "~1.5.6",
 "vary": "~1.0.0",
 "cookie": "0.1.2",
 "merge-descriptors": "0.0.2",
 "utils-merge": "1.0.0"
 },
 "devDependencies": {
 "after": "0.8.1",
 "ejs": "2.1.4",
 "istanbul": "0.3.5",
 "marked": "0.3.3",
 "mocha": "~2.1.0",
 "should": "~4.6.2",
 "supertest": "~0.15.0",
 "hjs": "~0.0.6",
 "body-parser": "~1.11.0",
 "connect-redis": "~2.2.0",
 "cookie-parser": "~1.3.3",
 "express-session": "~1.10.2",
 "jade": "~1.9.1",
 "method-override": "~2.3.1",
 "morgan": "~1.5.1",
 "multiparty": "~4.1.1",
 "vhost": "~3.0.0"
 },
 "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-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/",
 "test-travis": "istanbul cover node_modules/mocha/bin/_mocha 
 --report lcovonly -- --require test/support/env 
 --reporter spec --check-leaks test/ test/acceptance/"
 },
 "gitHead": "63ab25579bda70b4927a179b580a9c580b6c7ada",
 "bugs": {
 "url": "https://github.com/strongloop/express/issues"
 },
 "_id": "express@4.11.2",
 "_shasum": "8df3d5a9ac848585f00a0777601823faecd3b148",
 "_from": "express@*",
 "_npmVersion": "1.4.28",
 "_npmUser": {
 "name": "dougwilson",
 "email": "doug@somethingdoug.com"
 },
 "maintainers": [
 {
 "name": "tjholowaychuk",
 "email": "tj@vision-media.ca"
 },
 {
 "name": "jongleberry",
 "email": "jonathanrichardong@gmail.com"
 },
 {
 "name": "shtylman",
 "email": "shtylman@gmail.com"
 },
 {
 "name": "dougwilson",
 "email": "doug@somethingdoug.com"
 },
 {
 "name": "aredridel",
 "email": "aredridel@nbtsc.org"
 },
 {
 "name": "strongloop",
 "email": "callback@strongloop.com"
 },
 {
 "name": "rfeng",
 "email": "enjoyjava@gmail.com"
 }
 ],
 "dist": {
 "shasum": "8df3d5a9ac848585f00a0777601823faecd3b148",
 "tarball": "https://registry.npmjs.org/express/-/express-4.11.2.tgz"
 },
 "directories": {},
 "_resolved": "https://registry.npmjs.org/express/-/express-4.11.2.tgz",
 "readme": "ERROR: No README data found!"
}

Атрибуты Package.json

name — имя пакета

version — версия пакета

description — описание пакета

Фреймворк VUE JS: быстрый старт, первые результаты

Получите бесплатный курс и создайте веб-приложение на трендовой Frontend-технологии VUE JS с полного нуля

Узнать подробнее

homepage — домашняя страница пакета

author — автор пакета

contributors — имена соавторов пакета

dependencies — список зависимостей. NPM автоматически устанавливает все зависимости, указанные в этом атрибуте каталог пакета node_module.

repository — тип репозитория и URL-адрес пакета

main — точка входа пакета

keywords — ключевые слова

Удаление модуля

Для удаления модуля Node.js используется следующая команда

$ npm uninstall express

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

$ npm ls

Обновление модуля

Обновите файл package.json и измените версию зависимостей, подлежащую обновлению, и выполните следующую команду.

$ npm update express

Поиск модуля

Поиск по имени пакета с помощью NPM.

$ npm search express

Создание модуля

Для создания модуля требуется сгенерировать файл package.json. Давайте создадим с помощью NPM файл 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 sane 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: (webmaster)

Вам необходимо будет предоставить всю необходимую информацию о вашем модуле. В вышеупомянутом файле package.json вы можете найти справочную информацию относительно значений различных необходимых параметров. После создания package.json используйте следующую команду, чтобы зарегистрироваться на сайте репозитория NPM, используя действительный адрес электронной почты.

$ npm adduser
Username: mcmohd
Password:
Email: (this IS public) mcmohd@gmail.com

Теперь вы можете опубликовать свой модуль:

$ npm publish

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

Источник: https://www.tutorialspoint.com/

Редакция: Команда webformyself.

Фреймворк VUE JS: быстрый старт, первые результаты

Получите бесплатный курс и создайте веб-приложение на трендовой Frontend-технологии VUE JS с полного нуля

Узнать подробнее

Курс по NodeJS. Основы

Прямо сейчас посмотрите курс по NodeJS!

Смотреть курс

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree