Подробный обзор наиболее распространенных операций npm
NPM - самый популярный менеджер пакетов для Node.js. Он часто используется для установки и удаления пакетов. но также может использоваться для запуска пользовательских сценариев и выполнения других операций с пакетами.
Наиболее распространенные операции для разработчиков - это установка, очистка, удаление дубликатов и запуск скриптов.
npm install
npm install
, или для краткости npm i
, используется для установки пакетов. Если вы не укажете имя пакета после install
, он загрузит все пакеты, перечисленные в package.json
, если зависимости еще не установлены или установленная версия устарела. Если вы поместите имя пакета после npm install
, он будет устанавливать пакет с этим именем до тех пор, пока он найдет пакет. В процессе установки npm
запустит npm run link
и npm run build
для компиляции пакетов. Вы можете установить пакеты глобально, запустив npm install -g packageName
аудит npm
npm audit
используется для проведения аудита безопасности установленных вами пакетов npm. Он будет отображать результаты аудита в различных форматах. Вы также можете исправить любые уязвимости системы безопасности с помощью npm audit fix
. Чтобы сделать пробный прогон, вы можете do npm audit fix --dry-run
.
И аудит, и исправление можно отобразить в формате JSON, включив в команду --json
, например npm audit --json
и npm audit fix --json
.
Пример вывода:
=== npm audit security report === # Run npm update set-value --depth 12 to resolve 66 vulnerabilities High Prototype Pollution Package set-value Dependency of @angular-devkit/build-angular [dev] Path @angular-devkit/build-angular > sass > chokidar > anymatch > micromatch > braces > snapdragon > base > cache-base > set-value More info https://npmjs.com/advisories/1012 High Prototype Pollution Package set-value Dependency of @angular-devkit/build-angular [dev] Path @angular-devkit/build-angular > webpack > watchpack > chokidar > anymatch > micromatch > braces > snapdragon > base > cache-base > set-value More info https://npmjs.com/advisories/1012 High Prototype Pollution Package set-value Dependency of @angular-devkit/build-angular [dev] Path @angular-devkit/build-angular > webpack-dev-server > chokidar > anymatch > micromatch > braces > snapdragon > base > cache-base > set-value More info https://npmjs.com/advisories/1012 High Prototype Pollution Package set-value Dependency of @angular/compiler-cli [dev] Path @angular/compiler-cli > chokidar > anymatch > micromatch > braces > snapdragon > base > cache-base > set-value More info https://npmjs.com/advisories/1012 ...
npm bin
npm bin
распечатывает папку, в которую установлены пакеты.
Пример вывода:
c:\math-calculator>npm bin c:\math-calculator\node_modules\.bin
npm ci
npm ci
используется для установки всех пакетов с нуля с package-lock.json
. Если есть какие-либо расхождения между package.json
и package-lock.json
, он завершится ошибкой. node_modules
будет удален и все будет установлено с нуля.
Вы можете выполнить табуляцию до npm
, включив npm completion
в свой ~/.bashrc
или ~/.zshrc
.
npm-config
npm-config
используется для сохранения пар "ключ-значение" конфигурации в npmrc
. Чтобы установить пару "ключ-значение" в npmrc
, мы помещаем:
npm config set key value
Чтобы получить значение из ключа, мы запускаем:
npm config get key
Мы можем перечислить все значения, запустив:
npm config list
Мы можем удалить пару ключ-значение, запустив:
npm config delete key
и мы можем отредактировать пару ключ-значение, запустив:
npm config edit
Вы можете добавить — global
к приведенным выше командам, чтобы изменить глобальную конфигурацию.
npm дедупликация
npm dedupe
удалит повторяющиеся зависимости из вашей node_modules
папки, перемещая зависимости вверх по дереву зависимостей, позволяя общим зависимостям для нескольких пакетов ссылаться на одну зависимость.
нпм доктор
npm doctor
выполняет проверки, чтобы убедиться, что в вашей среде есть все для управления пакетами Git. Он проверяет, можно ли запустить Node.js и Git. Он также проверяет, доступен ли основной реестр npm или его альтернатива. node_modules
проверяется, доступен ли он и доступен для записи, а также проверяется, существует ли кеш npm и нет ли поврежденных пакетов:
Пример вывода npm doctor:
npm notice PING https://registry.npmjs.org/ npm WARN verifyCachedFiles Content garbage-collected: 1328 (139761056 bytes) npm WARN verifyCachedFiles Missing content: 5 npm WARN verifyCachedFiles Cache issues have been fixed Check Value Recommendation npm ping OK npm -v v6.9.0 Use npm v6.10.3 node -v v10.16.0 Use node v10.16.2 npm config get registry https://registry.npmjs.org/ which git C:\Program Files\Git\cmd\git.EXE Perms check on cached files ok Perms check on global node_modules ok Perms check on local node_modules ok Verify cache contents verified 8899 tarballs
npm исследовать
npm explore
используется, когда вам нужно найти установленный пакет. Оказавшись в каталоге пакета, вы можете запускать там команды.
npm помощь
Команды npm help-search
и npm help
используются для поиска справки по командам npm.
npm init
npm init
используется для добавления package.json
в проект, если он еще не существует. npm init -y
используется для пропуска всех вопросов, задаваемых перед созданием файла.
npm outdated
npm outdated
используется для проверки устаревших пакетов.
Пример вывода:
Package Current Wanted Latest Location @angular-devkit/build-angular 0.800.3 0.800.6 0.802.1 math-calculator @angular/animations 8.0.2 8.2.1 8.2.1 math-calculator @angular/cdk 8.0.1 8.1.2 8.1.2 math-calculator @angular/cli 8.0.3 8.0.6 8.2.1 math-calculator @angular/common 8.0.2 8.0.3 8.2.1 math-calculator @angular/compiler 8.0.2 8.0.3 8.2.1 math-calculator @angular/compiler-cli 8.0.2 8.0.3 8.2.1 math-calculator @angular/core 8.0.2 8.0.3 8.2.1 math-calculator @angular/forms 8.0.2 8.0.3 8.2.1 math-calculator @angular/language-service 8.0.2 8.0.3 8.2.1 math-calculator @angular/material 8.0.1 8.1.2 8.1.2 math-calculator @angular/platform-browser 8.0.2 8.0.3 8.2.1 math-calculator @angular/platform-browser-dynamic 8.0.2 8.0.3 8.2.1 math-calculator @angular/router 8.0.2 8.0.3 8.2.1 math-calculator @ngrx/store 8.0.1 8.2.0 8.2.0 math-calculator @types/jasmine 3.3.13 3.3.16 3.4.0 math-calculator @types/node 8.9.5 8.9.5 12.7.1 math-calculator karma 4.1.0 4.1.0 4.2.0 math-calculator karma-chrome-launcher 2.2.0 2.2.0 3.0.0 math-calculator karma-coverage-istanbul-reporter 2.0.5 2.0.6 2.1.0 math-calculator mathjs 6.0.2 6.0.4 6.0.4 math-calculator rxjs 6.4.0 6.4.0 6.5.2 math-calculator ts-node 7.0.1 7.0.1 8.3.0 math-calculator tslint 5.15.0 5.15.0 5.18.0 math-calculator typescript 3.4.5 3.4.5 3.5.3 math-calculator zone.js 0.9.1 0.9.1 0.10.1 math-calculator
npm ls
npm ls
перечисляет установленные пакеты в текущем проекте. npm list
и npm la
- псевдонимы этой команды.
npm prune
npm prune
удаляет неиспользуемые пакеты. npm run --production
используется для удаления пакетов из раздела devDependencies
. Параметр --dry-run
используется для проверки того, какие пакеты будут удалены перед фактическим запуском. Параметр --json
можно использовать для отображения результатов в формате JSON. При включенной блокировке пакетов сокращение выполняется автоматически.
npm root
npm root
отображает корневую папку для пакетов узлов в проекте.
npm run
npm run-script
позволяет запускать собственные сценарии, которые вы пишете. npm run
- это псевдоним этой команды.
npm start
npm start
запускает пакет, выполнив указанную вами команду.
npm search
npm search
используется для поиска пакетов по имени.
npm shrinkwrap
npm shrinkwrap
создает npm-shrinkwrap.json
путем перепрофилирования package-lock.json
или создания с нуля. npm-shrinkwrap.json
имеет приоритет над package-lock.json
.
npm stop
npm stop
останавливает пакет, выполнив указанную вами команду остановки.
npm test
npm test
позволяет запускать тесты с помощью заданного вами сценария.
npm uninstall
npm uninstall
используется для удаления пакетов. Вы можете добавить -g
в конце, чтобы удалить глобальные пакеты.
npm update
npm update
обновляет пакеты в проекте. npm update packageName
обновляет только пакет с именем packageName
. Последняя версия будет записана в package-lock.json
.
Чтобы обновить npm до последней версии, запустите npm install -g npm
.