Подтвердить что ты не робот

Что такое поле module.json для модуля?

Я видел несколько пакетов npm (vue, например), в поле package.json есть поле pkg.module. Является ли "module" официальной собственностью npm или это какое-то соглашение? Есть документация для этого где-то? Для чего это? esnext путь? Разделенный путь модуля?

4b9b3361

Ответ 1

Является ли "module" официальным свойством npm или это соглашение какого-то рода?

Это предложение, но, вероятно, будет поддержано из-за фактического использования.

Есть ли где-нибудь документация для этого?

Существует, на самом деле, и это можно найти прямо здесь, а затем удалить здесь.

Для чего это?

Функциональная совместимость модуля ES6 в узле. Дополнительное обсуждение можно найти здесь и здесь. И здесь сообщение в блоге от Рича Харриса, говорящее больше об этом.

Ответ 2

Это используется инструментами связывания для обнаружения ESM (модуля ECMAScript). Документация свертывания говорит это довольно хорошо:

Если в вашем файле package.json также есть поле module, инструменты с поддержкой ES6, такие как Rollup и webpack 2, напрямую импортируют версию модуля ES6.

Эта статья о Rollup 1.0 говорит об этом иначе:

main поле гарантирует, что пользователи Node, использующие require будут обслуживаться версией UMD. Поле module - это не официальная функция npm, а распространенное соглашение между сборщиками, указывающее, как импортировать ESM-версию нашей библиотеки.

Дальнейшее обсуждение pkg.module приведено на Rollup Github Wiki и в документации для веб-пакетов.