Файл package.json
Файл package.json
представляет собой центральный репозиторий настроек для инструментальных средств, используемых в проекте. Кроме того, он является тем местом, куда npm записывает сведения об именах и версиях установленных пакетов. Любая директория, в которой есть этот файл, интерпретируется как Node.js-пакет
. Способ использования файла package.json
зависит от того, собираетесь ли вы скачивать пакет или публиковать его в репозитории npmjs.com.
Основные поля в package.json
Файл package.json
содержит несколько важных полей, в том числе:
name
название вашего проекта. Это имя должно быть уникальным в реестреNPM
version
номер версии вашего проекта в форматеx.y.z
.description
краткое описание вашего проектаdependencies
список зависимостей, необходимых для запуска вашего проекта. Эти зависимости устанавливаютсяNPM
и перечислены в разделе зависимостей вашего файлаpackage.json
devDependencies
список зависимостей, которые необходимы только для разработки, например инструментов тестирования или сборкиscripts
список скриптов, которые можно запустить с помощью командыnpm run
Скрипты в package.json
В разделе сценариев файла package.json
вы можете определить сценарии, которые можно запускать с помощью команды npm run
. Эти сценарии могут автоматизировать различные задачи, такие как создание и тестирование кода. Чтобы определить скрипт, просто добавьте пару ключ-значение в раздел скриптов вашего файла:
package.json"scripts": {
"dev": "webpack --mode development",
"prod": "webpack --mode production"
}
В этом примере вы можете запустить сборку Webpack для разработки, выполнив следующую команду:
npm run dev
Скачивание пакетов через package.json
Для скачивания пакетов используется package.json файл. Создайте в директории вашего проекта файл и добавьте в него следующий код:
package.json{
"devDependencies": {
"jquery": "^3.6.1"
}
}
Затем сохраните файл и выполните в терминале команду которая запустит файл package.json
:
npm install
Что такое package-lock.json
package-lock.json
это лок-файл, или файл блокировки, содержащий информацию о зависимостях/пакетах с их точными номерами версий, которые были установлены для проекта node.js
.
- Помогает членам команды, работающим над одним и тем же репозиторием, инсталлировать именно те версии пакетов, которые были установлены ранее, даже если для пакетов были выпущены новые версии. Это обеспечивает одинаковое дерево
node_modules
на разных компьютерах/средах - Файл
package-lock.json
используется для фиксации зависимостей к определенному номеру версии - Файл автоматически генерируется при изменении дерева
node_modules
или файлаpackage.json
- Всякий раз при клонировании репозитория и запуска
npm i
на новом компьютере,npm
сначала обратит внимание на наличие файлаpackage-lock.json
, при обнаружении он начнет установку пакетов, указанных в этом файле. В противном случае заглянет в файлpackage.json
и начнет установку необходимых зависимых пакетов
Команда npm install
учитывает package-lock.json
, только если устанавливаемый пакеты находится в диапазоне версий package.json
.
Если версия пакета указанная в лок-файле, не входит в диапазон версий файла package.json
, пакеты обновляются и package-lock.json
перезаписывается. Чтобы вместо перезаписи package-lock.json
установка завершилась неудачей, используется команда npm ci
.
Версии пакетов
Учитывая, что при использовании semver
все версии имеют 3 цифры:
Первая
основной выпускВторая
вспомогательная версияТретья
выпуск исправлений
Предусмотрины следующие правила:
~
если вы пишете~0.13.0
, значит хотите обновлять только выпуски исправлений.0.13.1
это пройдет,0.14.0
это не пройдет^
если вы пишете^0.13.0
, вы хотите обновить патч и релизы:0.13.1
,0.14.0
это пройдет*
принимаете все обновления, включая обновления основных версий>
принимаете любую версию выше указанной>=
принимаете любую версию, равную или выше той, которую вы указали<=
принимаете любую версию, равную или ниже той, которую вы указалибез символа
принимаете только указанную версиюlatest
вы хотите использовать последнюю доступную версию