package.json как контракт
Для npm-пакета метаданные описывают:
- идентичность:
name, version
- discovery:
description, keywords, repository, bugs, license, author
- runtime-контракт:
type, main, exports, imports, types, files, bin, engines
- зависимости и
scripts
Не всё стандартизировано «самим JS»: поля читают npm, Node, TypeScript, бандлеры по-разному.
Самые критичные
Ошибки в exports, type, категориях dependencies и files ломают потребителей или публикуют лишнее. Валидируйте packed artifact в заявленных ESM/CJS средах.
Итог: metadata пакета — публичный контракт поставки; exports/type/files — зона повышенного внимания.