Как я могу предложить несколько форматов модулей для подфайлов опубликованной библиотеки npm - PullRequest
1 голос
/ 06 марта 2020

Учитывая пакет, опубликованный в npm с package.json, который указывает на 3 отдельных дистрибутивных файла, и выглядит примерно так:

{
  ...
  "name": "@myorg/mymodule",
  "main": "mymodule.umd.js",
  "module": "mymodule.esm.js",
  "unpkg": "mymodule.min.js"
}

и использование publi c выглядит следующим образом:

import mymodule from '@myorg/mymodule'

mymodule() // ..does stuff

или при использовании обычного JS

const mymodule = require('mymodule')

mymodule.default()

Как структурировать мой пакет для публикации sh дополнительных импортов. Например, допустим, мы хотим опубликовать sh функцию или локализацию, и мы не хотим, чтобы это было частью общего набора, потому что эта функция понадобится всего нескольким людям. В идеале использование будет выглядеть следующим образом:

import mymodule from '@myorg/mymodule'
import fr from '@myorg/mymodule/fr'

mymodule({
  locale: fr
})

Как я могу структурировать свой пакет, чтобы учесть это? Технически я могу выполнить этот импорт, но если я опубликую sh esm веб-пакет или накопительный сбой (неожиданный токен «экспорт»), потому что они думают, что это будет обычная js сборка и если я опубликую sh umd они выдают предупреждения о невозможности найти значение по умолчанию export. Единственный эффективный способ заставить это работать - это явный импорт import fr from '@myorg/mymodule/fr.esm'

Однако, как сопровождающий пакета, я хотел бы предварительно сконфигурировать пакет для лучшей работы с пакетами вместо того, чтобы требовать пользователи должны понимать внутреннюю часть своего компоновщика или полагаться на свое дрожание дерева, чтобы уменьшить размер. Это уже отлично работает с main, module и unpkg для основного файла, как я могу сделать нечто подобное для других файлов?

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