Генератор 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"}. Это предупреждение, а не ошибка; однако инструменты учитывают этот параметр, и пользователи правильно его задают.

Сопутствующие инструменты

Генератор вымышленных телефонных номеров

Создавайте до 50 вымышленных номеров из официально зарезервированных диапазонов пяти стран.

Генератор конфигурации webpack

Создайте webpack.config.js для webpack 5 под чистый JavaScript, React или Vue: TypeScript, Babel, CSS или Sass, изображения, HtmlWebpackPlugin, dev-сервер и команда npm install.

Валидатор XSD

Проверьте XML-документ в соответствии с схемой XSD и выявите несоответствия между элементами и их типами, указав точные номера строк.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.

Проверка телефонных номеров

Проверьте структуру номера по стране и получите регион, тип, форматы E.164, международный, национальный и RFC 3966.

Генератор случайных адресов

Создавайте 1–20 похожих на адрес записей для макетов и тестов в трёх упрощённых форматах.

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