Версии и пакеты

exports в package.jsonпо ветвям

Вставьте манифест и укажите вход: схема покажет первое подходящее условие.

exports в package.json

Ввод package.json

Манифест остаётся в браузере: нет запросов к npm и отправки файлов.

Результат разрешения

Введите манифест package.json.

Параметры разрешения

Разделяйте пробелами или запятыми. Полное поведение браузера и сборщика не моделируется.

Ввод или параметры изменились. Перед экспортом проверьте снова.

Когда import работает, а require выдаёт ошибку, порядок ключей условного экспорта бывает причиной. exports в package.json определяет, какая точка входа откроется при данном наборе условий.

Эта схема exports в package.json прослеживает один запрос. Для псевдонима # используется imports; содержимое целевого файла инструмент не читает.

Зачем показывать exports в package.json по ветвям?

Первое совпадение видно сразу

Условный экспорт проверяется в порядке ключей JSON, а не в порядке выбранных условий. Схема отмечает пропущенные ветви и показывает, как ранний default скрывает import.

Несколько упорядоченных путей из манифеста; первый подходящий путь выделен цветом.

Публичное отдельно от внутреннего

exports в package.json открывает . и ./feature потребителям. Запись #config в imports работает только внутри пакета; null означает явный запрет, а не пропавший файл.

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

Проследите один запрос по порядку

01

Введите имя пакета или #

sample-kit/feature превращается в ./feature с учётом поля name. Запрос #config переключает проверку на внутреннюю карту imports.

02

Поменяйте условия

По умолчанию выбраны Node.js и import. Сравните require или добавьте условие. Автопроверка ждёт 350 мс; при выключении доступны кнопка и Ctrl/Cmd + Enter.

03

Проверьте цель перед экспортом

Сопоставьте ключ, порядок ветвей и цель. Диагностика пути не доказывает наличие файла. После изменения ввода старый отчёт нельзя копировать.

Проверьте выбор точки входа

Точные ключи и шаблоны *

Поддерживаются корень, точный подпуть и шаблон *. Точный ключ имеет приоритет, более конкретный шаблон опережает общий, а null закрывает отдельную область.

Node и заданные условия

Сравните import и require в Node.js. Добавьте browser, types или development для просмотра набора условий; это не полная эмуляция сборщика.

Проверка локальных путей

Локальная цель exports начинается с ./ и не выходит выше пакета через .. или node_modules. imports допускает цель в другом пакете.

Границы проверки по манифесту

Наличие файла неизвестно
exports в package.json выбирает строку пути. Без дерева файлов нельзя узнать, существует ли цель, включена ли она в публикацию и может ли загрузиться.
Дополнительные условия — только просмотр
browser или types не воспроизводят Vite, webpack и TypeScript: у них есть дополнительные правила полей, расширений и деклараций типов.
# не становится публичным
Псевдоним imports с # доступен только коду того же пакета. Даже ссылка на внешний пакет не превращает его в открытый подпуть.
Без реестра и выполнения
Инструмент не скачивает npm-пакет, не обходит каталоги, не запускает скрипты, не создаёт карту и не проверяет все версии Node.

Вопросы об exports в package.json

Почему порядок ключей условного экспорта важен?

Node перебирает ключи объекта по порядку и выбирает первую активную ветвь с целью. Ранний default может скрыть последующий import.

Почему путь внутри пакета недоступен после добавления exports?

Когда задан exports, снаружи доступны только перечисленные подпути и подходящие шаблоны. null может запретить путь намеренно.

Какой файл выбирается для import и require?

Переключите способ вызова при одном входе. Активные условия Node изменятся, но порядок ключей карты останется прежним.

Как работает шаблон подпути со звёздочкой?

Шаблон ./features/* берёт остаток запроса и подставляет его вместо * в цели. Точные ключи и более конкретные шаблоны имеют приоритет.

Можно ли проверить наличие файла только по package.json?

Нет. Здесь проверяется синтаксис цели; для подтверждения наличия и публикации надо изучить настоящие файлы пакета.

Чем условия Vite отличаются от условий Node.js?

Vite может учитывать дополнительные условия и другие правила. Их можно добавить для предварительного просмотра, но полный результат сборщика здесь не воспроизводится.

Остался сложный случай?

Проверьте exports в package.json

Сравните import и require для одного входа и сохраните отчёт по ветвям для совместной проверки.