Зависимости делают возможным эффективное повторное использование кода. Убедитесь, что вы знаете, как управлять ими в своих проектах Node.
Зависимость — это фрагмент кода (библиотека, модуль или пакет), который требуется проекту для правильной работы.
В Node.js зависимости и devDependencies — это категории пакетов, которые вы можете определить в файле package.json для управления зависимостями вашего проекта. Изучите их отличия и узнайте, как использовать их в своих проектах.
Регулярные зависимости в проекте npm
Обычные зависимости — или просто зависимости — это пакеты, которые требуются вашему приложению для правильной работы во время выполнения и в производственных средах.
Зависимости могут включать:
- Внешние библиотеки, предлагающие готовые функции, такие как lodash.
- Фреймворки, обеспечивающие основу или структуру для создания приложений, таких как Express или React.
- Драйверы базы данных, такие как MongoDB или sqlite3.
- Пакеты, которые помогают в сетевых задачах, такие как Axios или Socket.io.
Например, если вы строите CRUD API с Express.js, выражать будет одной из ваших зависимостей, потому что она нужна вашему серверу для работы.
Чтобы установить зависимости времени выполнения, вы можете использовать менеджер пакетов, например npm, диспетчер пакетов узлов, или Пряжа.
Зависимости существуют в объекте зависимостей в файле package.json. Объект зависимостей хранит имена и версии пакетов.
Чтобы установить пакет как зависимость с помощью NPM, выполните следующую команду:
установка нпм
Приведенная выше команда устанавливает пакет и регистрирует его как зависимость вашего проекта в пакет.json:
// пакет.json
"зависимости": {
"имя пакета": "^версия-пакета",
}
Когда вы клонируете проект из веб-репозитория, вы можете установить зависимости, выполнив следующую команду:
установка нпм
Когда вы запускаете приведенную выше команду, ваш менеджер пакетов читает пакет.json файл и устанавливает указанные зависимости и devDependencies из реестра пакетов.
Зависимости разработки и как их использовать
Зависимости разработки — или devDepenendencies — это пакеты, которые нужны вашему приложению только в процессе разработки. Другими словами, они не нужны в производстве.
devDependencies могут включать:
- Фреймворки для тестирования, такие как Jest или Mocha.
- Тестировщики, такие как Chai.
- Линтеры и форматтеры, такие как Eslint.
- Инструменты документирования, такие как Swagger.
Типичным примером devDepenedency является пакет Нодемон, который перезапускает ваш сервер при обнаружении изменений в ваших скриптах.
Вы можете определить devDependencies в разделе devDependencies объект в пакет.json файл. Этот объект хранит имена и версии пакетов.
Вы можете установить пакет как devDependency, выполнив эту команду:
установка нпм --save-dev
Кроме того, вы можете установить пакет как devDependency, выполнив эту команду:
нпм установить -D
Приведенная выше команда устанавливает и регистрирует пакет в вашем пакет.json файл примерно так:
// пакет.json
"devDependencies": {
"имя пакета": "^версия-пакета"
}
Когда вы клонируете проект из веб-репозитория, запуск установка нпм Команда также установит файл devDependencies.
Однако запуск команды с производство флаг устанавливает только зависимости.
Например:
установка npm --production
Когда вы запускаете приведенную выше команду, ваш менеджер пакетов читает пакет.json файл и устанавливает зависимости вашего приложения из реестра пакетов.
Кроме того, вы можете установить NODE_ENV переменная к “производство” для достижения тех же результатов.
Другие типы зависимостей
Помимо зависимостей и devDependencies, Node.js также классифицирует пакеты как одноранговые и необязательные зависимости.
Одноранговые зависимости
Одноранговые зависимости — это зависимости, которые использует пакет, когда он ожидает, что в приложении, использующем его, будет присутствовать определенная версия или совместимая версия другого пакета.
Цель одноранговых зависимостей — обеспечить правильную работу пакета со своими зависимостями и избежать конфликтов или проблем совместимости.
Для версий npm ниже v7 одноранговые зависимости не устанавливаются автоматически. Скорее код, который включает пакет, должен включать его как зависимость. Если пакет не включает его, npm выдаст предупреждение.
Они существуют под одноранговые зависимости объект в файле package.json:
"одноранговые зависимости": {
"упаковка": "^версия"
}
Дополнительные зависимости
Необязательные зависимости — это пакеты, которые не являются необходимыми для основной функциональности проекта, но могут расширить его возможности, если они доступны.
Поскольку для корректной работы проекта необязательные зависимости не требуются, их можно не указывать при установке.
Выполнение приведенной ниже команды пропустит необязательные зависимости в процессе установки:
установка npm --omit = необязательно
Они существуют под необязательные зависимости объект в файле package.json:
"необязательные зависимости": {
"упаковка": "^версия"
}
Категории облегчают управление вашими зависимостями
Эффективное понимание, управление и категоризация зависимостей помогают обеспечить четкое разделение между пакетами, необходимыми для производства, и пакетами, необходимыми только во время разработки.
Это различие способствует эффективному управлению зависимостями, правильному объединению и упрощенному развертыванию вашего проекта.