package.json
Основные правила для package.json:
Сортировка полей:
{
"name": "", // Используйте нижний регистр, разделенный дефисом. Избегайте пробелов и специальных символов.
"author": "abz.agency <[email protected]>",
"version": "", // Следуйте семантическому версионированию (semver) (MAJOR.MINOR.PATCH)
"private": true, // Предотвратить случайную публикацию проекта в публичных реестрах, таких как npm.
"description": "", // Краткое и четкое описание проекта.
"scripts": {}, // Скрипты.
"dependencies": {}, // Только runtime зависимости, необходимые приложению.
"devDependencies": {}, // Инструменты и библиотеки, используемые только для разработки.
"engines": {} // Укажите версии Node.js и npm для обеспечения согласованности.
}
scripts
Здесь находятся скрипты, для управления проектом. Например, скрипты для сборки проекта, запуска сервера разработки и другие вспомагательные скрипты, учитывая разные окружения (development, stage, production).
{
"scripts": {
"start:development": "./node_modules/.bin/env-cmd -f env/.env.development ./node_modules/.bin/next start -H 127.0.0.1",
"build:development": "cross-env ./node_modules/.bin/env-cmd -f env/.env.development ./node_modules/.bin/next build",
"start:production": "./node_modules/.bin/env-cmd -f env/.env.production ./node_modules/.bin/next start -H 127.0.0.1",
"build:production": "cross-env ./node_modules/.bin/env-cmd -f env/.env.production ./node_modules/.bin/next build"
}
}
engines
{
"engines": {
"node": ">=21.7.3",
"npm": ">=10.8.3"
}
}
dependencies vs devDependencies
dependencies
- это зависимости, необходимые для работы вашего приложения в runtime.devDependencies
- это инструменты и библиотеки, используемые только для разработки.
Время от времени нужно пересматривать зависимости и удалять те, которые больше не используются, и проверять что зависимости только для разработки не попали в dependencies
.