Поиск по сайту:

Управление пакетами NodeJS с помощью Npm в Linux

Некоторое время назад мы опубликовали руководство по управлению пакетами Python с помощью PIP. Сегодня мы собираемся обсудить, как управлять пакетами NodeJS с помощью Npm в Linux.

NPM — крупнейший реестр программного обеспечения, содержащий более 600 000 пакетов. Каждый день разработчики по всему миру делятся и загружают пакеты через npm.

В этом руководстве я объясню основы работы с npm, такие как установка пакетов (локально и глобально), установка определенной версии пакета, обновление, удаление пакетов NodeJS и управление ими и так далее.

Установите NPM в Linux

Поскольку npm написан на NodeJS, нам необходимо установить NodeJS, чтобы использовать npm. Чтобы установить NodeJS в разных дистрибутивах Linux, перейдите по следующей ссылке.

  • Как установить NodeJS в Linux

После установки убедитесь, что NodeJS и NPM установлены правильно. Есть несколько способов сделать это.

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

$ which node
/home/sk/.nvm/versions/node/v9.4.0/bin/node

Проверьте его версию:

node -v
v9.4.0

Войдите в сеанс Node REPL:

$ node
> .help
.break Sometimes you get stuck, this gets you out
.clear Alias for .break
.editor Enter editor mode
.exit Exit the repl
.help Print this help message
.load Load JS from a file into the REPL session
.save Save all evaluated commands in this REPL session to a file
> .exit

Проверьте, где установлен npm:

$ which npm
/home/sk/.nvm/versions/node/v9.4.0/bin/npm

И версия:

$ npm -v
5.6.0

Большой! Node и NPM установлены и работают! Как вы, возможно, заметили, я установил NodeJS и NPM в свой каталог $HOME, чтобы избежать проблем с разрешениями при глобальной установке модулей. Это рекомендуемый метод командой NodeJS.

Что ж, давайте посмотрим, как управлять модулями (или пакетами) NodeJS с помощью npm.

Управление пакетами NodeJS с помощью Npm

Установка модулей NodeJS

Модули NodeJS можно устанавливать локально или глобально (в масштабе всей системы). Теперь я собираюсь показать, как установить пакет локально.

Установить пакеты локально

Для локального управления пакетами мы обычно используем файл package.json.

Сначала давайте создадим каталог нашего проекта.

mkdir demo
cd demo

Создайте файл package.json в каталоге вашего проекта. Для этого запустите:

npm init

Введите данные вашего пакета, такие как имя, версия, автор, страница GitHub и т. д., или просто нажмите клавишу ВВОД, чтобы принять значения по умолчанию, и введите YES для подтверждения.

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>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (demo) 
version: (1.0.0) 
description: demo nodejs app
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: 
license: (ISC) 
About to write to /home/sk/demo/package.json:

{
 "name": "demo",
 "version": "1.0.0",
 "description": "demo nodejs app",
 "main": "index.js",
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1"
 },
 "author": "",
 "license": "ISC"
}

Is this ok? (yes) yes

Приведенная выше команда инициализирует ваш проект и создает файл package.json.

Вы также можете сделать это неинтерактивно, используя команду:

npm init --y

Это позволит быстро создать файл package.json со значениями по умолчанию без вмешательства пользователя.

Теперь давайте установим пакет с именем commander.

npm install commander

Пример вывода:

npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN demo@1.0.0 No repository field.

+ commander@2.13.0
added 1 package in 2.519s

Это создаст каталог с именем "node_modules" (если он еще не существует) в корневом каталоге проекта и загрузит в него пакеты.

Давайте проверим файл package.json.

$ cat package.json 
{
 "name": "demo",
 "version": "1.0.0",
 "description": "demo nodejs app",
 "main": "index.js",
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1"
 },
 "author": "",
 "license": "ISC",
 "dependencies": {
 "commander": "^2.13.0"
 }
}

Вы увидите, что зависимости были добавлены. Символ каретки (^) перед номером версии указывает, что при установке npm выберет самую последнюю версию пакета, которую сможет найти.

$ ls node_modules/
commander

Преимущество файла package.json в том, что если у вас есть файл package.json в каталоге вашего проекта, вы можете просто ввести «npm install», тогда npm проверит зависимости, перечисленные в файле, и скачайте их все. Вы даже можете поделиться им с другими разработчиками или отправить его в свой репозиторий GitHub, чтобы, когда они наберут «npm install», они получили все те же пакеты, что и вы.

Вы также можете заметить еще один файл json с именем package-lock.json. Этот файл гарантирует, что зависимости остаются одинаковыми на всех системах, на которых установлен проект.

Чтобы использовать установленный пакет в своей программе, создайте файл index.js (или любое имя по вашему выбору) в каталоге проекта с фактическим кодом, а затем запустите его. используя команду:

node index.js

Установить пакеты глобально

Если вы хотите использовать пакет в качестве инструмента командной строки, лучше установить его глобально. Таким образом, это работает независимо от того, какой каталог является вашим текущим.

$ npm install async -g
+ async@2.6.0
added 2 packages in 4.695s

Или,

npm install async --global

Чтобы установить конкретную версию пакета, мы делаем:

npm install async@2.6.0 --global

Обновление модулей NodeJS

Чтобы обновить локальные пакеты, перейдите в каталог проекта, где находится package.json, и запустите:

npm update

Затем выполните следующую команду, чтобы убедиться, что все пакеты обновлены.

npm outdated

Если обновлений нет, то он ничего не возвращает.

Чтобы узнать, какие глобальные пакеты необходимо обновить, запустите:

npm outdated -g --depth=0

Если вывода нет, то обновляются все пакеты.

Чтобы обновить один глобальный пакет, запустите:

npm update -g <package-name>

Чтобы обновить все глобальные пакеты, запустите:

npm update -g <package>

Листинг модулей NodeJS

Чтобы просмотреть локальные пакеты, перейдите в каталог проекта и запустите:

$ npm list
demo@1.0.0 /home/sk/demo
└── commander@2.13.0

Как видите, я установил пакет «командир» в локальном режиме.

Чтобы просмотреть глобальные пакеты, запустите эту команду из любого места:

npm list -g

Пример вывода:

/home/sk/.nvm/versions/node/v9.4.0/lib
├─┬ async@2.6.0
│ └── lodash@4.17.4
└─┬ npm@5.6.0
 ├── abbrev@1.1.1
 ├── ansi-regex@3.0.0
 ├── ansicolors@0.3.2
 ├── ansistyles@0.1.3
 ├── aproba@1.2.0
 ├── archy@1.0.0
[...]

Эта команда выведет список всех модулей и их зависимостей.

Чтобы вывести список только модулей верхнего уровня, используйте опцию --length=0:

$ npm list -g --depth=0
/home/sk/.nvm/versions/node/v9.4.0/lib
├── async@2.6.0
└── npm@5.6.0

Поиск модулей NodeJS

Для поиска модуля используйте команду «npm search»:

npm search <search-string>

Пример :

npm search request

Эта команда отобразит все модули, содержащие строку поиска «запрос».

Удаление модулей NodeJS

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

npm uninstall <package-name>

Чтобы удалить его из зависимостей в файле package.json, используйте флаг save, как показано ниже:

npm uninstall --save <package-name>

Чтобы удалить глобально установленные пакеты, запустите:

npm uninstall -g <package>

Очистка кэша NPM

По умолчанию NPM сохраняет копию установленного пакета в папке кэша с именем npm в вашем каталоге $HOME при его установке. Таким образом, вы сможете установить его в следующий раз без необходимости повторной загрузки.

Чтобы просмотреть кэшированные модули:

ls ~/.npm

Папка кэша со временем заполняется всеми старыми пакетами. Кэш лучше время от времени чистить.

Начиная с версии npm@5, кеш npm самовосстанавливается от повреждений, и данные, извлеченные из кеша, гарантированно действительны. Если вы хотите убедиться, что все согласовано, запустите:

npm cache verify

Чтобы очистить весь кэш, выполните:

npm cache clean --force

Просмотр конфигурации NPM

Чтобы просмотреть конфигурацию npm, введите:

npm config list

Или,

npm config ls

Пример вывода:

; cli configs
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/5.6.0 node/v9.4.0 linux x64"

; node bin location = /home/sk/.nvm/versions/node/v9.4.0/bin/node
; cwd = /home/sk
; HOME = /home/sk
; "npm config ls -l" to show all defaults.

Чтобы отобразить текущее глобальное местоположение:

$ npm config get prefix
/home/sk/.nvm/versions/node/v9.4.0

И это все на данный момент. То, что мы только что рассмотрели, — это лишь основы. НПМ – это обширная тема. Более подробную информацию можно найти в руководстве Начало работы с NPM.

Статьи по данной тематике