Модули ECMAScript (ES-модули) поддерживают экспериментальное свойство в package.json , называемое exports , которое допускает псевдонимы подмодулей.
УчитываяФайл package.json с этой конфигурацией:
{
"name": "my-library",
"exports": {
"./foo/": "./lib/foo/",
"./bar/": "./lib/bar/"
}
}
Вы сможете импортировать такие модули, как:
import { button } from 'my-library/foo'
import { button } from 'my-library/bar'
Другой вариант - обновить скрипт сборки:
- копирование
./my-library/package.json
в ./my-library/lib/package.json
- обновление поля
main
при необходимости - публикация из каталога
./my-library/lib
Что касается обновления поля main
, вы можете рассмотреть возможность добавления файла ./my-library/lib/index.js
, который экспортирует каждый модуль из вашей библиотеки для потребителей, которые хотят импортировать по фиксированному пути (однако в среде браузера это может увеличитьих размер пучка):
import { button } from 'my-library'