Site icon 8HOST.COM

Анатомия файла package.json

Если вы работали над проектами JavaScript и Node.js, наверняка вам приходилось сталкиваться с файлами package.json – конфигурационными файлами npm для проектов и модулей. В этом мануале мы рассмотрим некоторые из наиболее важных ключей и значений, которые можно найти в типичном файле package.json.

Запуск проекта

Самый простой и быстрый способ запустить проект с помощью менеджера пакетов npm – это использовать команду init и флаг -y, который отвечает yes на все вопросы системы:

$ npm init -y

Примечание: Название проекта будет таким же, как и название текущей папки, в которой вы находитесь.

Команда init запишет файл package.json в текущий каталог с кодом JSON, который выглядит следующим образом:

{
"name": "hello-alligator",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}

Давайте рассмотрим каждый ключ в исходном файле package.json:

Управление зависимостями

Основная сила npm – это возможность легко управлять зависимостями проекта. Поэтому вполне естественно, что файл package.json сосредоточен в основном на перечислении зависимостей. Существуют обычные зависимости, а также devDependencies, peerDependencies, optionalDependencies и bundledDependencies. Пройдемся по ним подробнее:

Как вы, наверное, видели раньше, зависимости могут принимать разные форматы, что позволяет указать версии или диапазон версий, которые можно использовать. Например:

Чтобы задать сразу несколько диапазонов версий, разделите их с помощью ||.

Другие полезные ключи

Файл package.json поддерживает множество настроек, которые при желании можно использовать для настройки вашего проекта. Давайте кратко рассмотрим некоторые из наиболее полезных конфигураций:

Теперь у вас должно быть довольно хорошее общее представление о том, что может включать конфигурация package.json. Вы также можете обратиться к официальной документации, чтобы получить подробную информацию обо всех возможных ключах конфигурации.