Я бачив, що деякі пакети npm (наприклад, vue ) мають pkg.module
поле у своєму package.json. Це "module"
офіційна власність npm чи це якась конвенція? Чи є десь для цього документація? Для чого це? esnext шлях? Нерозділений шлях модуля?
Я бачив, що деякі пакети npm (наприклад, vue ) мають pkg.module
поле у своєму package.json. Це "module"
офіційна власність npm чи це якась конвенція? Чи є десь для цього документація? Для чого це? esnext шлях? Нерозділений шлях модуля?
Відповіді:
Це
"module"
офіційна власність npm чи це якась конвенція?
Це пропозиція , але, ймовірно, буде підтримана через фактичне використання.
Чи є десь для цього документація?
Насправді це є, і його можна знайти тут і пізніше тут .
Для чого це?
Інтероперабельність модуля ES6 у вузлі. Додаткову дискусію можна знайти тут і тут . А ось допис у блозі Річа Харріса, який розповідає про це більше.
Це використовується інструментами для постачальників для виявлення ESM (ECMAScript Module). Документація Відомості каже , що це дуже добре:
Якщо ваш
package.json
файл також маєmodule
поле, ES6 обізнані інструменти , такі як накопичувальний пакет і WebPack 2 буде імпортувати модуль версії ES6 безпосередньо.
У цій статті про накопичувач 1.0 йдеться про інший спосіб:
main
Поле гарантує , що користувачі вузлів з використаннямrequire
будуть обслуговуватися версії UMD.module
Поле не є офіційною межею НПМ , але загальне угоду між Пакувальники для позначення як імпортувати версію ESM нашої бібліотеки.
Подальше обговорення pkg.module
відбувається на зведеному Github Wiki та веб- пакеті Документів .
main
бути мінімізована версія UMD-бібліотеки? Або це повинен бути немініфікований? Про що module
? Я думаю, що цей модуль не повинен бути пом'якшений, оскільки користувач використовуватиме його пакет (Webpack, Parcel тощо) та використовуючи вихідний файл із експортом модуля ES6, він може використовувати тремтіння дерев, правда?