1. Введение
Чтобы использовать все богатство инструментов (или пакетов) Node.js нам нужна возможность устанавливать и управлять ими. Для этого создан NPM (node package manager) — пакетный менеджер Node.js. Он устанавливает нужные пакеты и предоставляет удобный интерфейс для работы с ними.
NPM состоит из трех основных компонентов:
- Сайт npmjs.com — используется для поиска и ознакомления с документацией пакетов.
- Интерфейс командной строки (CLI) — запускается из терминала и предоставляет набор команд для работы с реестром и пакетами. Позволяет создавать скрипты для запуска в терминале.
- Реестр пакетов (registry) — большая общедоступная база данных инструментов разработки (пакетов).
Пакет (package) — небольшая JS-библиотека, решающая специфическую задачу.
Пакеты пишут сами разработчики и делятся с сообществом. Такой подход упрощает жизнь, потому что не нужно изобретать колесо, все колеса уже давно лежат на полках реестра и готовы к использованию.
Пакеты абстрагируют реализацию функционала, предоставляя разработчику удобный интерфейс. Это делает код чище, читабельнее и позволяет легче его поддерживать.
2. Команды NPM
Сразу перечислим основные команды и будем последовательно использовать и рассматривать в деталях.
- npm init — инициализирует npm и создает файл package.json
- npm install — устанавливает все зависимости перечисленные в package.json
- npm list —depth=0 — выведет в терминале список локально установленных пакетов с номерами их версий, без зависимостей
- npm install [package-name] — установит пакет локально в папку node_modules
- npm uninstall [package-name] — удалит пакет, установленный локально и обновит package.json
- npm start и npm test — запустит скрипт start или test , расположенный в package.json
- npm run [custom-script] — запустит кастомный скрипт, расположенный в package.json
- npm outdated — используется для поиска обновлений, обнаружит совместимые версии программно и выведет список доступных обновлений
- npm update — обновит все пакеты до максимально разрешенной версии
3. Инициализация проекта
Каждый проект начинается с создания файла package.json — он отслеживает зависимости, содержит служебную информацию, позволяет писать npm-скрипты и служит инструкцией при создании нового проекта на основе уже готовых настроек.
Создать файл package.json можно npm-командой init , тем самым инициализировав проект в текущей папке.
npm init
Вам будет предложено ввести название проекта, версию, описание и т. д. Можно просто нажимать Enter до тех пор, пока не будет создан package.json и размещен в папке проекта.
Чтобы не нажимать Enter , пропуская пустые поля, используется команда init с флагом —yes . Флаг — дополнительная настройка для команды.
npm init --yes
Будет создан package.json со значениями по умолчанию. Чтобы установить эти значения, в терминале последовательно выполните следующие команды, подставив свое имя и почту.
npm config set init.author.name "YOUR_NAME" npm config set init.author.email "YOUR_EMAIL"
Можно редактировать файл package.json вручную или запустив npm init еще раз. Если открыть package.json в редакторе, он будет выглядеть примерно так. Это всего лишь метаданные о проекте.
"name": "node-tut", "version": "1.0.0", "main": "index.js", "scripts": "test": "echo \"Error: no test specified\" && exit 1" >, "author": "Alexander Repeta [email protected]>", "license": "ISC", "keywords": [], "description": "" >
4. NPM-скрипты
Скрипты позволяют запускать на исполнение установленные пакеты. Используя npm-скрипты, можно создавать целые системы сборки проекта.
Автоматизируем запуск index.js . Для этого в файле package.json в поле scripts добавим скрипт запуска start .
"scripts": "start": "node index.js" > >
Теперь мы можем запустить его в терминале командой npm start .

Если создать скрипт с любым другим именем, кроме start или test , он будет запускаться как npm run имя-скрипта — не забудьте run .
5. Установка пакетов
Одна из возможностей, которые предоставляет npm — установка пакетов, которые извлекаются из реестра и распаковываются в папку node_modules в корне проекта.
После того как файл package.json создан, можно добавить зависимости в проект. Зависимостью называют npm-пакет, который используется при разработке. Это всевозможные утилиты и библиотеки.
Установим библиотеку validator.js для валидации строк, например ввода пользователя в поля формы.
npm install validator
NPM загрузил validator и поместил его в node_modules — папку, в которой будут находиться все внешние зависимости.
Не добавляйте папку node_modules в систему контроля версий, у всех разработчиков она будет своя. Если вы используете Git , не забывайте добавить папку node_modules в файл .gitignore
Обратите внимание на созданный файл package-lock.json — это журнал снимков дерева зависимостей проекта. Он гарантирует, что команда разработчиков использует одни и те же версии зависимостей. NPM автоматически обновляет его при добавлении, удалении и обновлении пакетов.
В package.json появилась новая зависимость в поле dependencies . Это означает, что validator версии 11.1.0 был установлен как зависимость и готов к работе. Пакеты постоянно обновляются, версия может отличаться.
"dependencies": "validator": "^11.1.0" > >
Для того чтобы получить интерфейс пакета в коде, необходимо вызвать функцию require(‘имя-модуля’) , аргументом передав ей имя модуля без определения пути — это называется абсолютный импорт. Путь не нужен, так как по умолчанию поиск модуля будет происходить в папке node_modules . Результатом своего выполнения функция вернет интерфейс модуля — объект с методами или просто функцию, зависит от пакета.
// index.js const validator = require('validator'); const validateEmail = email => return validator.isEmail(email); >; console.log( 'Is [email protected] a valid email?: ', validateEmail('[email protected]'), ); console.log( 'Is Mangozedog.com a valid email?: ', validateEmail('Mangozedog.com'), );
Выполнив в консоли npm start получим.
Is [email protected] a valid email?: true Is Mangozedog.com a valid email?: false
6. Удаление пакетов
Предположим, что установленная в предыдущем примере версия validator вызывает проблемы с совместимостью. Мы можем удалить этот пакет и поставить более старую версию.
npm uninstall validator
7. Установка определенной версии пакета
Теперь установим нужную версию validator . В команде установки номер версии указывается после символа @ .
Установка пакетов определенный версии используется в коммерческих проектах для того, чтобы гарантировать работу кодовой базы и возможность долгосрочной поддержки.
8. Типы зависимостей
Представьте торт, для его приготовления шефу нужны продукты, именно они войдут в состав торта. Но для приготовления понадобятся и инструменты вроде мисок, ложек, лопаток и т. п. А еще на кухне есть столы и печи, холодильники и т. д. — то, что используется для приготовления любого блюда, общие инструменты которые есть на кухне.
То же самое и с зависимостями проекта — некоторые будут использованы в результирующем продукте, другие необходимы только на стадии разработки, а есть такие, что необходимо использовать вне зависимости от проекта.
Именно для этого у команд npm install и npm uninstall существуют 3 флага.
- —save — указывает, что добавляется зависимость, которая войдет в финальный продукт. Пакет будет установлен локально, в папку node_modules и будет добавлена запись в поле dependencies в package.json .
- —save-dev — указывает, что добавляется зависимость разработки. Пакет будет установлен локально, в папку node_modules , и будет добавлена запись в поле devDependencies в package.json .
- —global — указывает, что добавляется глобальная зависимость, то есть инструмент, который доступен для любого проекта. Пакет будет установлен глобально (в систему).
Если не указывать флаг, по умолчанию будет использован —save .
9. Управление версиями пакетов
Пакеты имеют связанный с ними номер версии. Номера версий соответствуют стандарту SemVer.
- npm outdated — используется для поиска обновлений, обнаружит совместимые версии программно.
- npm update — обновит все пакеты до максимально разрешенной версии.
- npm update [имя-пакета] — обновит указанный пакет
Если вы не доверяете машинам , можно открыть package.json и вручную поменять версии пакетов, после чего выполнить npm install .
10. Управление кэшем
После установки пакета npm сохраняет его копию в кэше, поэтому при следующей его установке вам не нужно опять скачивать его из интернета. Кэш хранится в папке .npm вашего домашнего каталога.
Эта папка со временем засоряется старыми пакетами и иногда ее полезно очищать, не слишком часто (пару раз в год), кеширование полезно, так как сокращает время установки уже использованных пакетов.
npm cache clean
11. Дополнительные материалы
- Упрощаем работу с npm: полезные сокращения и трюки
- Using Npm Scripts As A Build Tool
Что такое npm и зачем он нужен

Node.js — платформа, с помощью которой создают серверные приложения на JavaScript. В ее основе — модульная система, которая позволяет подтягивать отдельные пакеты в приложение.
Для управления зависимостями в Node.js используют Node Package Manager (npm). Он загружает и устанавливает необходимые для проекта модули из сторонних источников.
Рассказываем, как работать с npm.
Инициализация и установка пакетов
Разработка ведется на разных устройствах, а команда может установить необходимые модули в терминале. Пакеты в таком случае подтягиваются из открытых или частных репозиториев. Найти и прочитать информацию о пакете (описание, версионность, частота внесения изменений) можно в реестре npm.

Частота скачиваний за неделю (Weekly Downloads) и количество зависимостей (Dependents) свидетельствуют о надежности пакета — чем их больше, тем чаще его используют разработчики.
Также информацию о пакете можно посмотреть с помощью команды в терминале:

Для инициализации проекта введите npm init
Эта команда запрашивает у разработчика основную информацию о проекте и генерирует package.json на основе ответов. В этом файле хранится информация о проекте и его зависимостях.

курс по теме: Алгоритмы и структуры данных
Артем Верещака Tech Lead в Bolt

Этап с вопросами можно пропустить с помощью npm init -y. Пакеты загружаются командой npm install или, сокращенно, npm i. Если в вашем проекте уже есть package.json, подтянутся модули, которые в нем указаны. Если пакет не был прописан в package.json, нужно написать его название после команды:
Пакеты можно подтягивать не только по имени, но и по ссылке:
В конце команд можно добавлять флаги, которые модифицируют их выполнение. Например, добавить зависимость в package.json:
По умолчанию пакеты устанавливаются в директорию node_modules в папке проекта. Также доступна установка в глобальное хранилище на ПК. Например, на Windows — в папку AppData на диске с операционной системой. Для этого нужно добавить флаг:

Пакеты можно обновить до последней версии с помощью команды npm update
статьи по теме:
Рассказывает FullStack Developer (React/Node.js) в SoftServe.
Что нужно, чтобы стать фулстеком.
Версионность npm
Иногда новый пакет некорректно работает с другими зависимостями или может содержать ошибки. Чтобы это исправить, можно установить более раннюю версию. Выделяют три группы версий:
- MAJOR — пакет, в котором код и логика существенно отличается от предыдущих, например, был заменен ключевой класс. Версия 3.0.0 будет существенно отличаться от 2.0.0.
- MINOR — пакет, в который просто был добавлен новый функционал, например, 3.1.0 расширяет 3.0.0.
- PATCH — тут только вносились патчи и фиксы. Если нам нужно будет внести фикс в 3.1.0, то мы назовем версию 3.1.1.
Чтобы посмотреть все версии пакета, нужно ввести команду:
Для установки конкретной версии используется команда с указанием версии после @:
Добавление флага —save-exact установит и добавит последнюю версию в package.json. Таким же способом можно откатиться до необходимой.
Скрипты и тесты
package.json содержит не только общую информацию о проекте и зависимостях, но и скрипты, которые разработчики используют для сборки приложений, запуска линтеров, тестов. Польза скриптов в том, что они позволяют не запоминать длинные последовательности команд. Скрипты находятся в разделе scripts и содержат название и сами команды:
"scripts": < "build": "npm run build:node && npm run build:browser", "build:browser": "rollup -c config/rollup.browser-config.js", "build:node": "rollup -c config/rollup.node-config.js", "clean": "git clean -fdxe node_modules", "lint": "eslint src/", "start": "node -i -e 'YAML=require(\"./dist/index.js\")'", >
Например, скрипт lint запускает линтер для директории src. Для запуска скриптов используется команда:
Если ваш проект содержит тесты, их можно запустить с помощью:
Если вы забыли нужную команду или доступные для нее флаги, вы можете ввести:
Также доступна документация с описанием всех команд и флагов для различных версий npm.
Не получается запустить «npm init» через VS Code

Не получается запустить git init в VS Code, выдаёт сбой. Node.js я скачал. Подскажите, пожалуйста, что не так. Может дело в плагинах или неправильной установке.
Отслеживать
задан 7 июл 2022 в 9:46
user503974 user503974
VS Code нуждается в пути установки Node.js в системных переменных PATH. Добавьте C:\Program Files\nodejs в PATH
7 июл 2022 в 9:53
Я добавил path, но команда npm init все равно не работает. Ввожу в powershell.
– user503974
7 июл 2022 в 10:09
откройте окно powershell из панели задач windows и введите команды: node -v , npm -v. Они должны вам выдать номера версий, если работают, то всё должно работать и в VS Code. Если нет, то надо скачать и установить версию x64
7 июл 2022 в 10:21
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
VS Code нуждается в пути установки Node.js в системных переменных PATH. Добавьте C:\Program Files\nodejs в PATH.
Отслеживать
7,722 13 13 золотых знаков 25 25 серебряных знаков 54 54 бронзовых знака
ответ дан 7 июл 2022 в 10:10
1,938 1 1 золотой знак 11 11 серебряных знаков 9 9 бронзовых знаков
Сначала проверьте работают ли команды npm в терминале Если нет, то думаю следует переустановить node.js. Но если команды работают, то попробуйте через Windows PowerShell(администратор) написать это Set-ExecutionPolicy Unrestricted -Scope CurrentUser и потом ответить yes Чтоб найти Windows PowerShell(администратор) для тех кто не может найти, к иконке значка Пуск подводите мышь и нажимаете правую кнопку мыши и появится окно там можете выбрать Windows PowerShell(администратор) Этот метод помог мне исправить такую ошибку
Отслеживать
ответ дан 22 ноя 2022 в 20:40
1 1 1 бронзовый знак
22 ноя 2022 в 21:14
Выдавало такую же ошибку в терминале VS Code. Попробовал ввести команды node -v и npm -v в powershell они у меня сработали. Потом перезагрузил компьютер. Запустил VS Code и у меня получилось в терминале выполнить команду npm init -y.
Отслеживать
ответ дан 10 сен в 12:10
1 1 1 бронзовый знак
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.21.1314
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Управление пакетами npm в Visual Studio
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
npm позволяет устанавливать пакеты для приложений Node.js и ASP.NET Core, а также управлять ими. Visual Studio позволяет легко взаимодействовать с npm и использовать команды npm через пользовательский интерфейс или напрямую. Если вы не знакомы с npm и хотите узнать больше, перейдите на страницу документации npm.
Интеграция Visual Studio с npm зависит от типа проекта.
- Проекты на основе CLI (.esproj)
- Node.js
- ASP.NET Core
- Открытие папки (Node.js)
- Node.js
- ASP.NET Core
- Открытие папки (Node.js)
npm ожидает найти папку node_modules и файл package.json в корневом каталоге проекта. Если структура папок вашего приложения отличается, ее можно изменить, чтобы управлять пакетами npm с помощью Visual Studio.
Проект на основе CLI (.esproj)
Начиная с Visual Studio 2022 диспетчер пакетов npm доступен для проектов на основе CLI, поэтому теперь можно скачать модули npm аналогично тому, как вы скачиваете пакеты NuGet для проектов ASP.NET Core. Затем можно изменять и удалять пакеты с помощью package.json.
Чтобы открыть диспетчер пакетов, в Обозревателе решений щелкните правой кнопкой узел npm в своем проекте.

Затем вы можете выполнить поиск пакетов npm, выбрать один из них и установить, выбрав команду Установить пакет.

Проекты Node.js
Для проектов Node.js (.njsproj-файлов) можно выполнять следующие задачи:
- Установка пакетов из обозревателя решений
- Управление установленными пакетами из обозревателя решений
- Использование команды .npm в интерактивном окне Node.js
Эти функции работают вместе и синхронизируются с системой проекта и файлом package.json в проекте.
Необходимые компоненты
Чтобы добавить поддержку NPM в проект, вам потребуется рабочая нагрузка разработки Node.js и установленная среда выполнения Node.js. Подробные инструкции см. в разделе Создание приложения Node.js и Express.
Чтобы включить npm в существующем проекте Node.js, используйте шаблон решения Из существующего кода Node.js или тип проекта Открыть папку (Node.js).
Установка пакетов из Обозреватель решений (Node.js)
Самый простой способ установить пакеты npm в проекты Node.js — через окно установки пакетов npm. Чтобы открыть это окно, щелкните правой кнопкой мыши узел npm в проекте и выберите пункт Установить новые пакеты npm.

В этом окне можно найти пакет, указать параметры и установить пакет.

- Тип зависимости — выберите Стандартный, Разработка или Необязательный. Вариант «Стандартный» означает, что пакет является зависимостью среды выполнения, а вариант «Разработка» указывает, что пакет необходим только во время разработки.
- Добавить в package.json — рекомендуется. Этот настраиваемый параметр является устаревшим.
- Выбранная версия — выберите версию пакета, который вы хотите установить.
- Другие аргументы npm — укажите другие стандартные аргументы npm. Вы можете указать значение версии, например @~0.8 , чтобы установить определенную версию, которая недоступна в списке версий.
Ход установки можно просмотреть в выходных данных npm в окне Вывод. Чтобы открыть окно, выберите Вид>Вывод или нажмите сочетание клавиш CTRL + ALT + O. Это может занять некоторое время.

Если вы хотите найти пакеты с заданной областью, добавьте в начало поискового запроса нужную область, например, введите @types/mocha , чтобы искать файлы определений TypeScript для mocha. Кроме того, при установке определений типов для TypeScript можно указать целевую версию TypeScript, указав версию, например @ts2.6 в поле аргумента npm.
Управление установленными пакетами из обозревателя решений (Node.js)
Пакеты npm отображаются в обозревателе решений. Записи в узле npm повторяют зависимости в файле package.json.

Состояние пакета
— установлено и указано в package.json
— установлено, но не указано явным образом в package.json
— Не установлен, но указан в package.json
Щелкните правой кнопкой мыши узел npm, чтобы выполнить одно из следующих действий:
- Установка новых пакетов NPM Открывает пользовательский интерфейс для установки новых пакетов.
- Установка пакетов NPM Запускает команду NPM install, чтобы установить все пакеты, перечисленные в package.json. (Запускаем npm install .)
- Изменить пакеты npm. Обновляет пакеты до последних версий в соответствии с диапазоном семантического управления версиями (SemVer), указанным в package.json. (Запускается npm update —save .). Диапазоны SemVer обычно задаются с помощью «~» или «^». Дополнительные сведения см. в разделе Конфигурация package.json.
Щелкните правой кнопкой мыши узел пакета или выполните одно из следующих действий:
- Установка пакетов NPM Запускает команду NPM install, чтобы установить версию пакетов, перечисленных в package.json. (Запускаем npm install .)
- Изменить пакеты npm. Обновляет пакеты до последних версий в соответствии с диапазоном SemVer, указанным в package.json. (Запуск npm update —save .) Диапазоны SemVer обычно задаются с помощью «~» или «^».
- Удалить пакеты NPM удалит пакет и удаляет его из package.json (Запускает npm uninstall —save .)
Сведения о решении проблем с пакетами npm см. в разделе устранение неполадок.
Использование команды .npm в интерактивном окне Node.js (Node.js)
Вы также можете использовать команду .npm в интерактивном окне Node.js для выполнения команды npm. Чтобы открыть окно, в Обозревателе решений щелкните проект правой кнопкой мыши и выберите пункт Открыть интерактивное окно Node.js (или нажмите сочетание клавиш CTRL + K, N).
В этом окне вы можете использовать следующие команды для установки пакета:
.npm install azure@4.2.3
По умолчанию npm будет выполняться в домашнем каталоге проекта. Если у вас несколько проектов в решении, укажите имя или путь к проекту в квадратных скобках. .npm [MyProjectNameOrPath] install azure@4.2.3
Если проект не содержит файл package.json, используйте .npm init -y , чтобы создать файл package.json со значениями по умолчанию.
Проекты ASP.NET Core
Поддержку npm можно интегрировать, например, в проекты ASP.NET Core, и использовать npm для установки пакетов.
- Добавление поддержки npm в проект
- Установка пакетов с помощью файла package.json
Для установки клиентских файлов JavaScript и CSS в проектах ASP.NET Core вместо npm можно также использовать диспетчер библиотек или yarn.
Добавление поддержки npm в проект (ASP.NET Core)
Если в проекте еще нет файла package.json, добавьте его, чтобы включить поддержку npm. Добавьте файл package.json в проект.

- Щелкните решение правой кнопкой мыши и выберите пункт «Управление пакетами NuGet». Найдите npm и выберите «Установить», чтобы установить npm.
- Чтобы добавить файл package.json, щелкните правой кнопкой мыши проект в Обозревателе решений и выберите Добавить>Новый элемент (или нажмите сочетание клавиш CTL + SHIFT + A). Используя поле поиска, найдите файл npm, выберите Файл конфигурации npm , оставьте имя по умолчанию и нажмите кнопку Добавить.
- Включите один или несколько пакетов npm в раздел dependencies или devDependencies файла package.json. Например, в файл можно добавить следующие пакеты:
"devDependencies": < "gulp": "4.0.2", "@types/jquery": "5.3.1" >
При сохранении файла Visual Studio добавляет пакет в узел Зависимости / npm в обозревателе решений. Если узел не отображается, щелкните правой кнопкой мыши файл package.json и выберите пункт Восстановить пакеты.
В некоторых сценариях обозреватель решений может не отображать правильное состояние для установленных пакетов npm. Дополнительные сведения см. в разделе Устранение неполадок.
Установка пакетов с помощью файла package.json (ASP.NET Core)
В проектах, уже содержащих npm, можно настроить пакеты npm с помощью package.json . Откройте package.json напрямую или щелкните правой кнопкой мыши узел npm в Обозревателе решений и выберите Открыть файл package.json.

IntelliSense в package.json помогает выбрать конкретную версию пакета npm.

При сохранении файла Visual Studio добавляет пакет в узел Зависимости / npm в обозревателе решений. Если узел не отображается, щелкните правой кнопкой мыши файл package.json и выберите пункт Восстановить пакеты.
Установка пакета может занять несколько минут. Проверьте ход установки пакета, перейдя к выходным данным npm в окне вывода.

Устранение неполадок при работе с пакетами npm
- Для проектов Node. js необходимо установить рабочую нагрузку разработки Node. js для поддержки npm. Для npm требуется Node.js. Если Node.js не установлен, мы рекомендуем установить версию LTS с веб-сайта Node.js для обеспечения наилучшей совместимости с внешними платформами и библиотеками.
- В некоторых сценариях обозреватель решений может не отображать правильное состояние для установленных пакетов npm в связи с известной проблемой, описанной здесь. Например, при установке пакет может отображаться как неустановленный. В большинстве случаев обозреватель решений можно обновить, удалив файл package.json, перезапустив Visual Studio и повторно добавив файл package.json, как описано выше в этой статье. Или при установке пакетов можно использовать окно вывода npm для проверки состояния установки.
- В некоторых сценариях ASP.NET узел npm в Обозревателе решений может не отображаться после сборки проекта. Чтобы снова сделать узел видимым, щелкните правой кнопкой мыши узел проекта и выберите команду Выгрузить проект. Затем щелкните правой кнопкой мыши узел проекта и выберите команду Перезагрузить проект.
- При возникновении ошибок при создании приложения или транскомпиляции кода TypeScript проверьте известные несовместимости пакета NPM, возможно они стали причиной ошибок. Чтобы определить ошибки, проверьте окно вывода npm при установке пакетов, как описано выше в этой статье. Например, если одна или несколько из версий пакетов npm стали нерекомендуемыми, из-за чего возникают ошибки, может потребоваться установить более поздние версии. Дополнительные сведения об использовании package.json для контроля версий пакетов npm см. в разделе Конфигурация package.json.
