Подробный обзор наиболее распространенных операций 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.