Поля engines и volta в package.json

Рейтинг: 0Ответов: 1Опубликовано: 01.08.2023

Кто может вкратце объяснить что за новые поля (а я их называю новыми, так как год-два назад я их не видел) стали все чаще и чаще (повсеместно) фигурировать в package.json:

  "engines": {
    "node": "18",
    "npm": "9"
  },
  "volta": {
    "node": "18.16.0"
  }

Желательно своим языком и в кратце. И что за дела, я не устанавливал volta, а она есть, глобально

Ответы

▲ 1Принят

Поле engines там было примерно всегда https://docs.npmjs.com/cli/v9/configuring-npm/package-json#engines

Может использоваться для указания с какой версией NodeJS/NPM работает пакет. См. также поля os и cpu.

Поле volta это «самодеятельность» Volta https://docs.volta.sh/guide/#reproducible-environments-for-collaborators используется для фиксации версии NodeJS для других пользователей Volta.

А вообще, кто угодно может написать в package.json почти что угодно. NodeJS и NPM просто игнорируют неизвестные им поля.