Это 3-й день моего участия в ноябрьском испытании обновлений.Подробности о событии:Вызов последнего обновления 2021 г.
Всем привет, я CUGGZ, новичок в области фронтенда, который только что закончил обучение. Сегодня я обобщил некоторые часто используемые команды npm, чтобы поделиться с вами, я надеюсь помочь вам!
1. Основные понятия npm
npm 全称为 Node Package Manager,是一个基于 Node.js 的包管理器,也是 Node.js 社区最流行、支持的第三方模块最多的包管理器。它的初衷就是让开发人员更容易分享和重用代码。npm 提供了命令行工具,其主要功能是管理Node.js包,包括安装、更新、删除、查看、搜索、发布等。
NPM изначально Node.js Package Manager, но с разработкой интерфейсных технологий, его позиционирование в широкий менеджер пакетов, вы можете достичь JavaScript, React, Vue, Gulp, Mobile Development Management Management, является крупнейшим, наиболее экологически звуковой пакетом управляющий делами.
- Загрузите и установите программу командной строки локально с зеркального сервера npm;
- Публикуйте модули самостоятельно на зеркальном сервере npm, чтобы их могли использовать другие.
npm не нужно устанавливать отдельно, при установке Node.js npm будет установлен вместе. Но установленный npm не обязательно является последней версией, вы можете использовать следующую команду, чтобы проверить локальную версию npm:
npm -v
Здесь -v является сокращением от --version, что означает версию. Если вы хотите обновить версию npm, вы можете использовать следующую команду:
npm install npm@latest -g
Здесь @latest означает последнюю версию, -g — это сокращение от --global, что означает глобальную установку.
Кроме того, вы также можете использовать команду HELP для просмотра справки NPM:
npm 命令 --help
Например, посмотрите на форму установки параметра:
npm install --help
Где --help может быть сокращено до -h, результат выполнения вышеуказанной команды выглядит следующим образом, вы можете увидеть множество форм команды установки:Общие команды нпм:
| Заказ | эффект |
|---|---|
| npm -v | Проверьте версию npm. |
| npm init | Файл конфигурации package.json появится после инициализации. Вы можете добавить -y после него, чтобы быстро пропустить интерфейс вопросов и ответов. |
| npm install | Автоматически загружать все зависимые от нужного элемента файлы согласно package.json в проекте. |
| имя пакета установки npm --save-dev (имя пакета установки npm -D) | Установленный пакет используется только в среде разработки, а не в производственной среде, и отображается в свойстве devDependencies в файле package.json. |
| Имя установочного пакета npm --save (имя установочного пакета npm -S) | Установленный пакет необходимо выпустить в производственную среду, и он появится в свойстве зависимостей в файле package.json. |
| npm list | |
| npm list -g | Global View Node Package уже установлен. |
| npm --help | Проверьте команду Help NPM. |
| NPM обновить имя пакета | Обновите указанный пакет. |
| имя пакета удаления npm | Удалите указанный пакет. |
| npm config list | Просмотр информации о конфигурации. |
| npm указать команду --help | Просмотрите справку по указанной команде. |
| Информация npm указывает имя пакета | Просмотр всей информации о версии указанного пакета на удаленном npm. |
| npm config set registry registry.npm.taobao.org | Измените пакет Загрузите источник, здесь модифицированный на Taobao Mirror. |
| npm root | Просмотрите путь установки текущего пакета. |
| npm root -g | Просмотрите глобальный путь установки пакета. |
| имя пакета npm ls | Просмотр указанного пакета и информации о версии, установленных локально, и пустой не отображается. |
| npm ls имя_пакета -g | Просмотрите информацию об указанном пакете и версии, установленной глобально, и пустая не отображается. |
После обсуждения этих концепций давайте посмотрим, какими практическими навыками обладает npm при его использовании.
2. Инициализировать пакет
Любой проект, управляемый npm, должен инициализировать файл package.json.Здесь немного о package.json.Вы можете обратиться к предыдущим статьям:Что вы знаете о внешнем интерфейсе housekeeper package.json?
Вы можете использовать следующую команду для инициализации пакета:
npm init
npm init --yes
npm config set init.author.name YOUR_NAME
npm config set init.author.email YOUR_EMAIL
После выполнения вышеуказанной команды и последующего выполнения команды npm init имя автора и адрес электронной почты package.json будут инициализированы до значений, которые мы установили.
2. Быстро понять пакет
Если вы хотите использовать пакет, если вы хотите знать, как он используется, вы можете использовать следующую команду, чтобы открыть домашнюю страницу пакета, она автоматически запустит браузер и откроет страницу, вот React в качестве примера :
npm home react
Если вы хотите просмотреть существующие проблемы или общедоступные планы для этого пакета, вы можете выполнить следующую команду:
npm bugs react
Если вы хотите просмотреть кодовый адрес этого пакета, вы можете выполнить следующую команду:
npm repo react
Если вы хотите увидеть подробности этого пакета, вы можете выполнить следующую команду:
npm info react
Результат выполнения следующий:Здесь возвращается объект JavaScript, который содержит подробную информацию о модулях реагирования, вы можете получить информацию о членах этого объекта с помощью команды info:
npm info react description
Результат выполнения следующий:
3. Установите зависимости
Вы можете использовать команду npm install для установки необходимого пакета.Если вы хотите автоматически добавить этот пакет в package.json, вы можете выполнить следующую команду.Вот пример установки React:
npm install react --save
Если вы хотите установить другую версию пакета, вы можете сделать это:
// 安装最新版本
npm install react@latest
// 安装指定版本
npm install react@16.8.0
// 安装指定区间版本
npm install react@">=16.8.0 <17.0.1"
При использовании npm для установки зависимостей он делится на локальную установку (локальную) и глобальную установку (глобальную).Разница между ними заключается в том, включен ли параметр -g:
| Заказ | стенография | иллюстрировать |
|---|---|---|
| без | без | Устанавливайте модули в локальный каталог node_modules, но не в package.json. |
| --save | -S | Установите модуль в каталог локальных Node_Modules и сохраните его в элемент конфигурации зависимостей в Package.json. Зависимости этого пакета все еще существуют в производственной среде. |
| --sava-dev | -D | Модуль устанавливается в каталог локальных Node_Module, элементы конфигурации сохранены в Package Package.json в то же время, только использование разработки. |
| --global | -g |
可以使用require关键字来引入本地安装的包。为了避免引用模块消失,保证依赖模块都会出现在package.json中,最好在npm install 时加上--save。
Следует отметить, что при выполнении команды npm install npm 5 будет только загружать, а не сохранять информацию о зависимостях. Если вам нужно сохранить, вам нужно добавить параметр --save.После npm 5 вы можете опустить параметр --save, и он будет автоматически сохранен.
4. Заблокировать зависимости
При использовании --Save для установки зависимости NPM сохранит зависимость и добавляет префикс ^. Он сказал, что когда команда Установки NPM снова выполняется, новейшая версия пакета по этой основной версии будет автоматически установлена. Если вы хотите изменить эту функцию, вы можете выполнить следующую команду:
npm config set save-prefix='~'
执行完该命令之后,就会把^符号改为~符号。当再次安装新模块时,就从只允许小版本的升级变成了只允许补丁包的升级。
Если вы хотите заблокировать текущую версию, вы можете выполнить следующую команду:
npm config set save-exact true
Таким образом, номер версии зависимости будет блокироваться каждый раз, когда npm install xxx --save, что эквивалентно добавлению параметра --save-exact. Рекомендуется, чтобы все онлайн-приложения использовали этот метод блокировки номера версии.
Чтобы полностью заблокировать версию зависимостей и разрешить приложению устанавливать одну и ту же версию на любом компьютере, вы можете выполнить следующую команду:
npm shrinkwrap
После выполнения этой команды в корневом каталоге проекта будет сгенерирован файл конфигурации npm-shrinkwrap.json, который содержит дерево зависимостей и версию модуля, рассчитанную по node_modules. Пока в каталоге есть npm-shrinkwrap.json, при запуске npm install конфигурация в npm-shrinkwrap.json будет предпочтительно использоваться для установки, в противном случае для установки будет использоваться package.json.
5. Поиск зависимостей
NPM предоставляет нам команду поиска для поиска параметров поиска репозитория NPM, это может быть строка или регулярное выражение:
npm search react
Результаты поиска следующие:Конечно, мы также можем перейти на официальный сайт node.js, чтобы найти:www.npmjs.com/
Найти подходящий пакет зависимостей может быть непросто. В этом случае вы можете воспользоваться сайтомnpms.io/, который количественно определяет качество, популярность, ремонтопригодность и другие показатели каждого пакета. Эти индикаторы включают в себя: используются ли устаревшие зависимости, есть ли конфигурация проверки кода, была ли она протестирована и когда была выпущена самая последняя версия.Тем не менее, более прямой путь может состоять в том, чтобы перейти в поисковую систему, чтобы увидеть рекомендации других людей ~
6. Обновить, удалить зависимость
NPM предоставляет нам обновленную версию версии:
npm update [package name]
Если вы хотите обновить установленный глобальный модуль, вам необходимо добавить параметры -global:
npm update -global [package name]
当执行这两个命令时,它会先到远程仓库查询最新版本,然后查询本地版本。 Если локальная версия не существует или удаленная версия новее, она будет установлена.
Если вы хотите обновить версию пакета зависимостей в package.json, вам нужно использовать параметр -S или --save. Следует отметить, что, начиная с npm v2.6.1, npm update будет обновлять только модуль верхнего уровня, а не зависимые зависимые модули, в то время как предыдущая версия обновляется рекурсивно. Если вам нужен этот эффект, вы можете использовать следующую команду:
npm --depth 9999 update
Помимо возможности обновлять пакеты, также можно удалять определенные пакеты:
npm uninstall [package name]
Если вы хотите удалить глобальный пакет, вам нужно добавить параметр -global:
npm uninstall [package name] -global
7. Ищите устаревшие пакеты
NPM предоставляет команду для просмотра устаревшей зависимости от:
npm outdated
Выполните эту команду в моем проекте, и результат будет следующим:Как видите, здесь перечислены имя пакета устаревших зависимостей, текущая версия, желаемая версия, последняя версия, локальный путь зависимости и имя проекта, который зависит от этого пакета.
Вы можете проверить последнюю версию пакета npm с помощью следующей команды:
// 展示包的信息
npm view <package-name>
npm v <package-name>
// 展示最新版本
npm v <package-name> version
// 展示所有版本
npm v <package-name> versions
8. Выполнить скрипт
NPM не только для модуля управления, его также можно использовать для выполнения скрипта. Там сценарии в файловом пакете. Джейсона поля могут использоваться для определения команд сценариев, используйте NPM питания. Кроме того, мы можем посмотреть на какую команду файла Package.json вы можете использовать следующую команду для просмотра всех команд сценариев:
npm run
Результат после выполнения этой команды в моем проекте выглядит следующим образом:Как видите, здесь определены такие команды, как dev, build, build:test.Если вам нужно выполнить эти команды, просто выполните их следующим образом:
npm run dev
npm run build
Здесь нечего сказать, это может быть команда, которую мы используем чаще всего, и мы можем настроить нашу собственную команду npm в соответствии с реальной ситуацией разработки.
9. Установите надежные зависимости
Зависимости можно очистить и установить с помощью команды npm ci. Он часто используется в автоматизированных средах, таких как CI/CD, где можно получить надежные зависимости.
npm ci
Когда эта команда выполняется, она сначала удалит локальный файл node_modules, поэтому ей не нужно проверять взаимосвязь между загруженной версией файла и контрольной версией, а также не нужно проверять, существует ли последняя версия библиотеки, поэтому скорость загрузки выше, чем установка npm будет быстрее. Затем он устанавливает точную версию зависимостей в соответствии с файлом package-lock.json. и не будет записывать эту версию в файлы package.json или package-lock.json.
При использовании этой команды обратите внимание на:
- В проекте должен быть файл package-lock.json или npm-shrinkwrap.json, иначе эта команда не сработает;
- npm ci — это новая команда, представленная в npm v6, поэтому при использовании этой команды необходимо убедиться, что версия npm >=5.7;
- npm ci нельзя использовать для установки одной зависимости, его можно использовать только для установки зависимостей всего проекта;
- npm ci установит зависимости и devDependencies;
- Весь процесс установки не будет обновлять файлы package.json или package-lock.json, и весь процесс установки заблокирован;
- Если зависимости в package-lock.json несовместимы с зависимостями в package.json, npm ci завершит работу без изменения файла package-lock.json.
10. Удалить дубликаты пакетов
Мы можем удалить повторяющиеся зависимости, запустив команду npm dedupe. Эта команда упрощает общую структуру, удаляя повторяющиеся пакеты и разделяя общие зависимости между несколькими зависимыми пакетами. Он создает плоское дедуплицированное дерево.
npm dedupe
npm ddp
11. Сканирование на наличие уязвимостей
Вы можете запустить команду аудита npm для сканирования вашего проекта на наличие уязвимостей во всех зависимостях:
npm audit
Посмотрите результаты сканирования моего проекта:Следующая команда может быть запущена для автоматической установки исправленных версий всех уязвимых пакетов:
npm audit fix
12. Список установленных пакетов
npm list
Команда npm list перечисляет все модули, установленные текущим проектом, и модули, от которых они зависят, в древовидной структуре.Если вы добавите глобальный параметр, в нем будут перечислены модули, установленные глобально:
npm list -global
Вы также можете просмотреть зависимости указанного пакета.Например, в проекте, который я сейчас делаю, выполните следующую команду:
npm list react
Вы также можете использовать команду NPM LS для просмотра информации о зависимости для указанного пакета:
npm ls react
Вы можете использовать параметр --depth, чтобы ограничить глубину поиска:
npm ls --depth=1
13. Протестируйте локальный пакет
Когда мы разрабатываем модуль npm локально, мы можем использовать команду npm link для подключения локального модуля npm к соответствующему проекту, что удобно для отладки и тестирования модуля. Использование также очень простое, выполните в проекте следующие команды:
npm link
После выполнения команды она будет создана глобально для этого пакета npm, и путь будет {prefix}/lib/node_modules/<package>, что является ярлыком. Затем мы можем использовать следующую команду, чтобы связать пакет в проектах, для которых требуется этот модуль:
npm link 模块名
здесьимя модуляЭто имя зависимого пакета, которое является значением имени поля в файле Package.json пакета модуля.
Если вы не хотите продолжать использовать его, выполните следующую команду, чтобы удалить ссылку:
npm unlink 模块名