Генератор package.json
Вместо запуска программы npm init и выполнения одиннадцати запросов достаточно заполнить форму, и вы получите чётко структурированный файл package.json. Этот генератор охватывает все обязательные поля (имя, версия), наиболее часто используемые (скрипты, зависимости, разработческие зависимости, движки), а также дополнительные параметры (репозиторий, ошибки, ключевые слова, лицензия), необходимые для того, чтобы пакет был легко идентифицируемым и подлежащим публикации.
Как создать файл package.json
-
1
Введите имя и версию
Название должно соответствовать правилам npm: быть в нижнем регистре, безопасным для использования в URL и не превышать 214 символов. Версия, semver (например, 0.1.0).
-
2
Выберите тип модуля
CommonJS (по умолчанию) или ESM с указанием типа «module», это требование для проектов Node.js версии 14 и выше.
-
3
Добавить скрипты
Запуск, компиляция, тестирование и проверка кода, все эти команды выполняются с использованием `npm run <name>`.
-
4
Перечень зависимостей
Пакеты рунтайма, в зависимости; инструменты, в разработочных зависимостях.
-
5
Установить метаданные
Описание, автор, лицензия, URL репозитория, ключевые слова.
-
6
Копируйте результат
Вставьте в новый файл package.json, расположенный в корневой директории проекта.
Наиболее важные поля
| Поле | Обязательно? | Примечания |
|---|---|---|
name |
Да | Строчные буквы, от 1 до 214 символов, безопасно для URL |
version |
Да | Semver (major.minor.patch) |
type |
Нет | “module” для ESM; пропускается для CommonJS |
main |
Рекомендуется | Входной пункт для CommonJS (index.js) |
exports |
Рекомендуется | Современная карта экспорта для систем CJS и ESM |
scripts |
настоятельно рекомендуется | Команды npm run <name> |
dependencies |
По требованию | Пакеты для выполнения приложений |
devDependencies |
По мере необходимости | Инструменты для компиляции, тестовые программы, инструменты для проверки кода на ошибки |
engines |
Полезно иметь | Обязательный диапазон версий узлов |
license |
Да, для публикации | Идентификатор SPDX, например MIT или Apache-2.0 |
Подручник для проверки знаний по Semver
1.0.0, major.minor.patch^1.0.0, совместим с версией 1.x.x (≥1.0.0, <2.0.0)~1.0.0, только обновления патчей (≥ 1.0.0, < 1.1.0)>=1.0.0 <2.0.0, явный диапазон1.0.0-beta.1, prereleaselatest, тег npm, а не версия
По умолчанию при запуске npm install package используется версия ^, что позволяет осуществлять обновления без прерывания работы системы.
Стандартные скрипты, которые стоит иметь
{
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"build": "tsc",
"test": "vitest",
"lint": "eslint .",
"format": "prettier --write ."
}
}
Ошибки при назначении имен
- Без заглавных букв.
MyPackageне проходитnpm install. - Без пробелов. Используйте дефисы:
my-package. - Имена с областью видимости (scoped) начинаются с
@org/для организаций на GitHub или npm: например,@acme/utils. - Зарезервированные слова.
node_modules,favicon.ico,coreиexpressне могут использоваться в качестве названий пакетов.
Опции лицензии
Выберите признанный идентификатор SPDX:
- MIT, наиболее подходящий и распространённый вариант.
- Apache-2.0, лицензия с пермиссивным режимом и предоставлением патентов.
- ISC, очень короткая лицензия в стиле MIT, стандартная для npm.
- GPL-3.0-or-later, копилефт (copyleft).
- UNLICENSED, частный пакет, не предназначенный для распространения.
Неверные или неоднозначные строки лицензии вызывают предупреждения при публикации на npm.
Часто задаваемые вопросы
Зависимости устанавливаются при запуске программы npm install в проекте, использующем вашу программу. Зависимости для разработки (devDependencies) установлены только в собственной среде разработки пакета: пакеты для выполнения, в зависимости, а инструменты тестирования и компиляции, в devDependencies.
Да, это относится к приложениям: файл блокировки указывает точные версии и обеспечивает воспроизводимость установки на различных устройствах и в процессах автоматического тестирования (CI). Для библиотечных пакетов, публикуемых на npm, файл блокировки является необязательным, пользователи получают свой собственный файл блокировки.
Только если вы хотите, чтобы пакет по умолчанию использовал синтаксис импорта/экспорта ESM; в противном случае файлы с расширением .js будут считаться файлами CommonJS. Также можно использовать расширение .mjs для файлов ESM и .cjs, для файлов CommonJS, независимо от их типа.
Это версии узлов, на которых был протестирован ваш код. Типичным выбором в настоящее время является "engines": {"node": ">=18"}. Это предупреждение, а не ошибка; однако инструменты учитывают этот параметр, и пользователи правильно его задают.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Конвертер CMYK в RGB
Преобразуйте проценты CMYK в приблизительные значения RGB и Hex для быстрого экранного предпросмотра по стандартной формуле.
Шпаргалка по Markdown
Практический справочник Markdown с настоящим предпросмотром и готовыми для копирования примерами заголовков, списков, таблиц, кода, ссылок, изображений и синтаксиса GFM.
Конвертер размера файлов
Преобразуйте значения между байтами, КБ, МБ, ГБ, ТБ и двоичными единицами IEC (KiB, MiB, GiB, TiB), свободно сочетая десятичные и двоичные единицы.
Инструмент доступен на других языках
- Trình tạo package.json [VI]
- Package.json-generator [SV]
- package.json-Generator [DE]
- Generador de Package.json [ES]
- ตัวสร้าง package.json [TH]
- مولد package.json [AR]
- Package.json 생성기 [KO]
- Générateur de package.json [FR]
- Generator package.json [ID]
- Package.json-generator [NL]
- Generator package.json [PL]
- PackageJsonジェネレータ [JA]
- Gerador de Package.json [PT]
- Package.json Generator [EN]
- Generatore di Package.json [IT]
- Package.json Oluşturucu [TR]
- package.json 生成器 [ZH]