Генератор package.json

package.json
Далее

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

Как создать файл package.json

  1. 1

    Введите имя и версию

    Название должно соответствовать правилам npm: быть в нижнем регистре, безопасным для использования в URL и не превышать 214 символов. Версия, semver (например, 0.1.0).

  2. 2

    Выберите тип модуля

    CommonJS (по умолчанию) или ESM с указанием типа «module», это требование для проектов Node.js версии 14 и выше.

  3. 3

    Добавить скрипты

    Запуск, компиляция, тестирование и проверка кода, все эти команды выполняются с использованием `npm run <name>`.

  4. 4

    Перечень зависимостей

    Пакеты рунтайма, в зависимости; инструменты, в разработочных зависимостях.

  5. 5

    Установить метаданные

    Описание, автор, лицензия, URL репозитория, ключевые слова.

  6. 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, prerelease
  • latest, тег 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), свободно сочетая десятичные и двоичные единицы.

Инструмент доступен на других языках