package.json
Файл маніфесту пакунка. Він містить усі метадані пакунка, включно із залежностями, назвою, автором тощо. Це стандарт, який зберігається у всіх основних менеджерах пакунків Node.js, включаючи pnpm.
Окрім традиційного формату package.json
, pnpm також підтримує package.json5
(з допомогою json5) та package.yaml
(з допомогою js-yaml).
engines
Ви можете вказати версію Node і pnpm, на якій працює ваше програмне забезпечення:
{
"engines": {
"node": ">=10",
"pnpm": ">=3"
}
}
Під час локальної розробки pnpm завжди завершить роботу з повідомленням про помилку, якщо його версія не збігається з версією, вказаною у полі engines
.
Якщо користувач не встановив прапорець конфігурації engineStrict
(див. параметри), це поле є лише рекомендаційним і видаватиме попередження лише тоді, коли ваш пакунок буде встановлено як залежність.
devEngines.runtime
Додано у: v10.14
Дозволяє вказати один або декілька рушіїв виконання JavaScript, які використовуються в проєкті. Підтримуються рушії Node.js, Deno та Bun.
Наприклад, ось як додати node@^24.4.0
до ваших залежностей:
{
"devEngines": {
"runtime": {
"name": "node",
"version": "^24.4.0",
"onFail": "download"
}
}
}
Ви також можете додати кілька середовищ виконання до одного package.json
:
{
"devEngines": {
"runtime": [
{
"name": "node",
"version": "^24.4.0",
"onFail": "download"
},
{
"name": "deno",
"version": "^2.4.3",
"onFail": "download"
}
]
}
}
Як це працює:
pnpm install
обробляє вказаний вами діапазон для отримання останньої відповідної версії середовища виконання.- Точна версія (та контрольна сума) зберігається у файлі блокування.
- Скрипти використовують локальне середовище виконання, забезпечуючи узгодженість між середовищами.
dependenciesMeta
Додаткова метаінформація, що використовується для залежностей, оголошених всередині dependencies
, optionDependencies
та devDependencies
.