Node.js
НПМ
Поиск…
Вступление
Диспетчер пакетов узлов (npm) предоставляет следующие две основные функции: онлайн-репозитории для пакетов / модулей node.js, которые можно найти на search.nodejs.org. Утилита командной строки для установки пакетов Node.js, управления версиями и управления зависимостями пакетов Node.js.
Синтаксис
- npm <command>, где <command> является одним из следующих:
- Добавить пользователя
- Добавить пользователя
- apihelp
- автор
- бункер
- ошибки
- с
- кэш
- завершение
- конфиг
- DDP
- дедупликации
- протестовать
- документы
- редактировать
- проводить исследования
- Часто задаваемые вопросы
- находить
- найти-простофиля
- получить
- Помогите
- помощь-поиск
- Главная
- я
- устанавливать
- Информация
- в этом
- isntall
- проблемы
- ля
- ссылка на сайт
- список
- Л.Л.
- пер
- авторизоваться
- Ls
- устаревший
- владелец
- пак
- префикс
- чернослив
- публиковать
- р
- Р.Б.
- перестраивать
- Удалить
- Сделки рЕПО
- запустить снова
- комната
- корень
- выполнения сценария
- s
- се
- поиск
- задавать
- шоу
- Упаковочная
- звезда
- звезды
- Начните
- стоп
- подмодуль
- тег
- тестовое задание
- TST
- ООН
- деинсталляция
- разъединить
- Отменить публикацию
- снять пометку
- вверх
- Обновить
- v
- версия
- Посмотреть
- кто я
параметры
параметр | пример |
---|---|
доступ | npm publish --access=public |
бункер | npm bin -g |
редактировать | npm edit connect |
Помогите | npm help init |
в этом | npm init |
устанавливать | npm install |
ссылка на сайт | npm link |
чернослив | npm prune |
публиковать | npm publish ./ |
запустить снова | npm restart |
Начните | npm start |
стоп | npm start |
Обновить | npm update |
версия | npm version |
Установка пакетов
Вступление
Пакет - это термин, используемый npm для обозначения инструментов, которые разработчики могут использовать для своих проектов. Это включает в себя все: от библиотек и фреймворков, таких как jQuery и AngularJS, до задач, таких как Gulp.js. Пакеты появятся в папке, обычно называемой node_modules
, которая также будет содержать файл package.json
. Этот файл содержит информацию обо всех пакетах, включая любые зависимости, которые являются дополнительными модулями, необходимыми для использования определенного пакета.
Npm использует командную строку для установки и управления пакетами, поэтому пользователи, пытающиеся использовать npm, должны быть знакомы с базовыми командами в своей операционной системе, то есть: перемещаться по каталогам, а также видеть содержимое каталогов.
Установка NPM
Обратите внимание, что для установки пакетов необходимо установить NPM.
Рекомендуемый способ установки NPM - использовать один из установщиков со страницы загрузки Node.js. Вы можете проверить, установлено ли у вас уже установленное node.js, выполнив команду npm -v
или npm version
.
После установки NPM с помощью установщика Node.js обязательно проверьте наличие обновлений. Это связано с тем, что NPM обновляется чаще, чем установщик Node.js. Чтобы проверить наличие обновлений, выполните следующую команду:
npm install npm@latest -g
Как установить пакеты
Для установки одного или нескольких пакетов используйте следующее:
npm install <package-name>
# or
npm i <package-name>...
# e.g. to install lodash and express
npm install lodash express
Примечание . Это установит пакет в каталог, в который в настоящее время входит командная строка, поэтому важно проверить, выбран ли соответствующий каталог
Если у вас уже есть файл package.json
в вашем текущем рабочем каталоге, и в нем определены зависимости, то npm install
автоматически разрешит и установит все зависимости, перечисленные в файле. Вы также можете использовать сокращенную версию команды npm install
которая: npm i
Если вы хотите установить определенную версию пакета, используйте:
npm install <name>@<version>
# e.g. to install version 4.11.1 of the package lodash
npm install [email protected]
Если вы хотите установить версию, которая соответствует определенному диапазону версий, используйте:
npm install <name>@<version range>
# e.g. to install a version which matches "version >= 4.10.1" and "version < 4.11.1"
# of the package lodash
npm install lodash@">=4.10.1 <4.11.1"
Если вы хотите установить последнюю версию, используйте:
npm install <name>@latest
Вышеупомянутые команды будут искать пакеты в центральном репозитории npm
на npmjs.com . Если вы не хотите устанавливать из реестра npm
, поддерживаются другие параметры, такие как:
# packages distributed as a tarball
npm install <tarball file>
npm install <tarball url>
# packages available locally
npm install <local path>
# packages available as a git repository
npm install <git remote url>
# packages available on GitHub
npm install <username>/<repository>
# packages available as gist (need a package.json)
npm install gist:<gist-id>
# packages from a specific repository
npm install --registry=http://myreg.mycompany.com <package name>
# packages from a related group of packages
# See npm scope
npm install @<scope>/<name>(@<version>)
# Scoping is useful for separating private packages hosted on private registry from
# public ones by setting registry for specific scope
npm config set @mycompany:registry http://myreg.mycompany.com
npm install @mycompany/<package name>
Обычно модули устанавливаются локально в папке с именем node_modules
, которая может быть найдена в текущем рабочем каталоге. Это каталог require()
будет использовать для загрузки модулей, чтобы сделать их доступными для вас.
Если вы уже создали файл package.json
, вы можете использовать --save
(стенографию -S
) или один из ее вариантов, чтобы автоматически добавить установленный пакет к вашему package.json
в качестве зависимости. Если кто-то еще установит ваш пакет, npm
автоматически прочитает зависимости из файла package.json
и установит перечисленные версии. Обратите внимание, что вы все равно можете добавлять и управлять своими зависимостями, редактируя файл позже, поэтому обычно рекомендуется отслеживать зависимости, например:
npm install --save <name> # Install dependencies
# or
npm install -S <name> # shortcut version --save
# or
npm i -S <name>
Чтобы устанавливать пакеты и сохранять их только в том случае, если они необходимы для разработки, а не для их запуска, а не если они необходимы для запуска приложения, выполните следующую команду:
npm install --save-dev <name> # Install dependencies for development purposes
# or
npm install -D <name> # shortcut version --save-dev
# or
npm i -D <name>
Установка зависимостей
Некоторые модули не только предоставляют библиотеку для вас, но также предоставляют один или несколько двоичных файлов, которые предназначены для использования в командной строке. Хотя вы все равно можете устанавливать эти пакеты локально, часто рекомендуется устанавливать их в глобальном масштабе, чтобы инструменты командной строки могли быть включены. В этом случае npm
автоматически свяжет двоичные файлы с соответствующими путями (например, /usr/local/bin/<name>
), чтобы их можно было использовать из командной строки. Чтобы установить пакет по всему миру, используйте:
npm install --global <name>
# or
npm install -g <name>
# or
npm i -g <name>
# e.g. to install the grunt command line tool
npm install -g grunt-cli
Если вы хотите просмотреть список всех установленных пакетов и связанных с ними версий в текущей рабочей области, используйте:
npm list
npm list <name>
Добавление необязательного аргумента имени может проверить версию определенного пакета.
Примечание. Если вы сталкиваетесь с проблемами разрешений при попытке установить модуль npm во всем мире, не поддавайтесь искушению выпустить sudo npm install -g ...
для решения проблемы. Предоставление сторонних скриптов для работы с вашей системой с повышенными привилегиями опасно. Проблема с разрешением может означать, что у вас возникла проблема с тем, как была установлена сама npm
. Если вы заинтересованы в установке узла в изолированной среде, вы можете попробовать использовать nvm .
Если у вас есть инструменты для сборки или другие зависимости только для разработки (например, Grunt), вы можете не захотеть связать их с приложением, которое вы развертываете. Если это так, вы хотите, чтобы он был зависимым от разработки, который указан в package.json
под devDependencies
. Чтобы установить пакет как зависимость от разработки, используйте --save-dev
(или -D
).
npm install --save-dev <name> // Install development dependencies which is not included in production
# or
npm install -D <name>
Вы увидите, что пакет затем добавляется в devDependencies
вашего package.json
.
Чтобы установить зависимости загруженного / клонированного проекта node.js, вы можете просто использовать
npm install
# or
npm i
npm автоматически считывает зависимости от package.json
и устанавливает их.
NPM за прокси-сервером
Если ваш интернет-доступ через прокси-сервер, вам может потребоваться изменить команды установки npm, которые будут обращаться к удаленным репозиториям. npm использует файл конфигурации, который может быть обновлен через командную строку:
npm config set
Вы можете найти свои настройки прокси на панели настроек вашего браузера. После того, как вы получили настройки прокси-сервера (URL-адрес сервера, порт, имя пользователя и пароль); вам необходимо настроить конфигурацию npm следующим образом.
$ npm config set proxy http://<username>:<password>@<proxy-server-url>:<port>
$ npm config set https-proxy http://<username>:<password>@<proxy-server-url>:<port>
username
, password
, поля port
являются необязательными. Как только вы их установили, ваша npm install
, npm i -g
и т. Д. npm i -g
работать правильно.
Области и репозитории
# Set the repository for the scope "myscope"
npm config set @myscope:registry http://registry.corporation.com
# Login at a repository and associate it with the scope "myscope"
npm adduser --registry=http://registry.corporation.com --scope=@myscope
# Install a package "mylib" from the scope "myscope"
npm install @myscope/mylib
Если имя вашего собственного пакета начинается с @myscope
а область «myscope» связана с другим репозиторием, npm publish
будет загружать ваш пакет в этот репозиторий.
Вы также можете сохранить эти настройки в файле .npmrc
:
@myscope:registry=http://registry.corporation.com
//registry.corporation.com/:_authToken=xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxx
Это полезно при автоматизации сборки на CI-сервере fe
Удаление пакетов
Чтобы удалить один или несколько локально установленных пакетов, используйте:
npm uninstall <package name>
Команда удаления для npm содержит пять псевдонимов, которые также можно использовать:
npm remove <package name>
npm rm <package name>
npm r <package name>
npm unlink <package name>
npm un <package name>
Если вы хотите удалить пакет из файла package.json
как часть удаления, используйте флаг --save
(стенограмма: -S
):
npm uninstall --save <package name>
npm uninstall -S <package name>
Для зависимостей разработки используйте флаг --save-dev
(стенограмма: -D
):
npm uninstall --save-dev <package name>
npm uninstall -D <package name>
Для дополнительной зависимости используйте флаг --save-optional
(стенограмма: -O
):
npm uninstall --save-optional <package name>
npm uninstall -O <package name>
Для пакетов, которые установлены глобально, используйте флаг --global
(стенограмма: -g
):
npm uninstall -g <package name>
Основные семантические версии
Перед публикацией пакета вам нужно его выпустить. npm поддерживает семантическое управление версиями , это означает, что есть патч, младший и основной релиз.
Например, если ваш пакет находится в версии 1.2.3 для изменения версии, вам необходимо:
- Патч релиз:
npm version patch
=> 1.2.4 - младший выпуск:
npm version minor
=> 1.3.0 - основной выпуск:
npm version major
=> 2.0.0
Вы также можете указать версию напрямую:
npm version 3.1.4
=> 3.1.4
Когда вы устанавливаете версию пакета с помощью одной из приведенных выше команд npm, npm изменяет поле версии файла package.json, фиксирует его, а также создает новый тег Git с версией с префиксом «v», как если бы вы Выпустили команду:
git tag v3.1.4
В отличие от других менеджеров пакетов, таких как Bower, реестр npm не полагается на теги Git, которые создаются для каждой версии. Но, если вам нравится использовать теги, вы должны помнить о том, чтобы нажимать вновь созданный тег после нападания на версию пакета:
git push origin master
(нажать на изменение package.json)
git push origin v3.1.4
(нажать новый тег)
Или вы можете сделать это одним махом:
git push origin master --tags
Настройка конфигурации пакета
Конфигурации пакетов Node.js содержатся в файле package.json
который вы можете найти в корне каждого проекта. Вы можете настроить новый файл конфигурации, вызвав:
npm init
Это попытается прочитать текущую рабочую директорию для информации репозитория Git (если она существует) и переменных среды, чтобы попытаться автозаполнять некоторые из значений placeholder для вас. В противном случае он предоставит диалоговое окно ввода для основных параметров.
Если вы хотите создать package.json
со значениями по умолчанию, используйте:
npm init --yes
# or
npm init -y
Если вы создаете package.json
для проекта, который вы не собираетесь публиковать в виде пакета npm (т. Е. Исключительно для округления ваших зависимостей), вы можете передать это намерение в файле package.json
:
- При желании для
private
публикации запрещается публикацияprivate
собственности. - Необязательно установите для свойства
license
значение «НЕИЗВЕСТНОЕ», чтобы лишить других права использовать ваш пакет.
Чтобы установить пакет и автоматически сохранить его в package.json
, используйте:
npm install --save <package>
Пакет и связанные метаданные (например, версия пакета) будут отображаться в ваших зависимостях. Если вы сохраните, если в качестве зависимости развития (используя --save-dev
) пакет вместо этого появится в ваших devDependencies
.
С помощью этого bare-bones package.json
вы будете сталкиваться с предупреждающими сообщениями при установке или обновлении пакетов, сообщая вам, что вам не хватает описания и поля репозитория. Хотя безопасно игнорировать эти сообщения, вы можете избавиться от них, открыв package.json в любом текстовом редакторе и добавив следующие строки к объекту JSON:
[...]
"description": "No description",
"repository": {
"private": true
},
[...]
Публикация пакета
Во-первых, убедитесь, что вы настроили свой пакет (как указано в разделе «Настройка конфигурации пакета» ). Затем вы должны войти в npmjs.
Если у вас уже есть пользователь npm
npm login
Если у вас нет пользователя
npm adduser
Чтобы проверить, что ваш пользователь зарегистрирован в текущем клиенте
npm config ls
После этого, когда ваш пакет готов к публикации, используйте
npm publish
И все готово.
Если вам нужно опубликовать новую версию, убедитесь, что вы обновили версию своего пакета, как указано в Basic semantic versioning . В противном случае npm
не позволит вам публиковать пакет.
{
name: "package-name",
version: "1.0.4"
}
Запуск скриптов
Вы можете определить скрипты в вашем package.json
, например:
{
"name": "your-package",
"version": "1.0.0",
"description": "",
"main": "index.js",
"author": "",
"license": "ISC",
"dependencies": {},
"devDependencies": {},
"scripts": {
"echo": "echo hello!"
}
}
Чтобы запустить echo
скрипт, запустите npm run echo
из командной строки. Произвольные сценарии, такие как echo
выше, должны выполняться с npm run <script name>
. npm также имеет ряд официальных сценариев, которые он запускает на определенных этапах жизни пакета (например, preinstall
). См. Здесь полный обзор того, как npm обрабатывает поля сценария.
Скрипты npm используются чаще всего для таких вещей, как запуск сервера, построение проекта и запуск тестов. Вот более реалистичный пример:
"scripts": {
"test": "mocha tests",
"start": "pm2 start index.js"
}
В записях scripts
командной строки, такие как mocha
будут работать, если они установлены либо глобально, либо локально. Если запись в командной строке не существует в системе PATH, npm также проверит ваши локально установленные пакеты.
Если ваши скрипты становятся очень длинными, их можно разбить на части, например:
"scripts": {
"very-complex-command": "npm run chain-1 && npm run chain-2",
"chain-1": "webpack",
"chain-2": "node app.js"
}
Удаление посторонних пакетов
Для удаления посторонних пакетов (пакетов, которые установлены, но не в списке зависимостей) выполните следующую команду:
npm prune
Чтобы удалить все пакеты dev
добавьте флаг --production
:
npm prune --production
Список установленных пакетов
Чтобы создать список (древовидное представление) установленных пакетов, используйте
npm list
ls , la и ll - это псевдонимы команды списка . Команды la и ll показывают расширенную информацию, такую как описание и репозиторий.
Опции
Формат ответа можно изменить, передав параметры.
npm list --json
- json - отображает информацию в формате json
- long - показывает расширенную информацию
- parseable - показывает список синтаксического анализа вместо дерева
- global - показывает глобально установленные пакеты
- depth - максимальная глубина отображения дерева зависимостей
- dev / development - показывает devDependencies
- prod / production - Показывает зависимости
Если вы хотите, вы также можете перейти на домашнюю страницу пакета.
npm home <package name>
Обновление npm и пакетов
Поскольку сам npm является модулем Node.js, он может быть обновлен с использованием самого себя.
Если ОС - это Windows, необходимо запустить командную строку в качестве администратора
npm install -g npm@latest
Если вы хотите проверить обновленные версии, вы можете:
npm outdated
Чтобы обновить конкретный пакет:
npm update <package name>
Это обновит пакет до последней версии в соответствии с ограничениями в package.json
Если вы также хотите заблокировать обновленную версию в package.json:
npm update <package name> --save
Блокировка модулей для определенных версий
По умолчанию npm устанавливает последнюю доступную версию модулей в соответствии с семантической версией каждой зависимости. Это может быть проблематично, если автор модуля не придерживается semver и, например, вносит изменения в обновление модуля.
Чтобы заблокировать каждую версию зависимостей (и версии их зависимостей и т. Д.) Для конкретной версии, установленной локально в папке node_modules
, используйте
npm shrinkwrap
Затем будет создан npm-shrinkwrap.json
вместе с вашим package.json
котором перечислены конкретные версии зависимостей.
Настройка для общедоступных пакетов
Вы можете использовать npm install -g
для установки пакета «глобально». Обычно это делается для установки исполняемого файла, который вы можете добавить к своему пути для запуска. Например:
npm install -g gulp-cli
Если вы обновите свой путь, вы можете вызвать gulp
напрямую.
Во многих ОС npm install -g
попытается записать в каталог, который ваш пользователь может не написать, например, /usr/bin
. Вы не должны использовать sudo npm install
в этом случае, так как существует вероятность угрозы выполнения произвольных скриптов с помощью sudo
и пользователь root может создавать каталоги в вашем доме, которые вы не можете записать, что затрудняет будущие установки.
Вы можете указать npm
где устанавливать глобальные модули через ваш конфигурационный файл ~/.npmrc
. Это называется prefix
который можно просмотреть с npm prefix
.
prefix=~/.npm-global-modules
Это будет использовать префикс всякий раз, когда вы запускаете npm install -g
. Вы также можете использовать npm install --prefix ~/.npm-global-modules
чтобы установить префикс при установке. Если префикс совпадает с вашей конфигурацией, вам не нужно использовать -g
.
Чтобы использовать глобально установленный модуль, он должен быть на вашем пути:
export PATH=$PATH:~/.npm-global-modules/bin
Теперь, когда вы запускаете npm install -g gulp-cli
вы сможете использовать gulp
.
Примечание. Когда вы npm install
(без -g
), префикс будет каталогом с package.json
или текущим каталогом, если нигде не найдено в иерархии. Это также создает каталог node_modules/.bin
который имеет исполняемые файлы. Если вы хотите использовать исполняемый файл, специфичный для проекта, нет необходимости использовать npm install -g
. Вы можете использовать его в node_modules/.bin
.
Связывание проектов для более быстрой отладки и разработки
Построение зависимостей проекта иногда может быть утомительной задачей. Вместо публикации версии пакета для NPM и установки зависимости для проверки изменений используйте npm link
. npm link
создает символическую ссылку, поэтому последний код может быть протестирован в локальной среде. Это упрощает тестирование глобальных инструментов и зависимостей проектов, позволяя запустить последний код перед выпуском опубликованной версии.
Текст справки
NAME
npm-link - Symlink a package folder
SYNOPSIS
npm link (in package dir)
npm link [<@scope>/]<pkg>[@<version>]
alias: npm ln
Шаги для связывания зависимостей проекта
При создании ссылки зависимостей обратите внимание, что имя пакета - это то, что будет указано в родительском проекте.
- CD в каталог зависимостей (например:
cd ../my-dep
) -
npm link
- CD в проект, который будет использовать зависимость
-
npm link my-dep
или если namespacednpm link @namespace/my-dep
Шаги по связыванию глобального инструмента
- CD в каталог проекта (например:
cd eslint-watch
) -
npm link
- Использовать инструмент
-
esw --quiet
Проблемы, которые могут возникнуть
Связывание проектов иногда может вызывать проблемы, если уже установлена зависимость или глобальный инструмент. npm uninstall (-g) <pkg>
а затем запуск npm link
обычно разрешает любые проблемы, которые могут возникнуть.