Должны ли мои файлы вывода пакета npm реагировать на один пакет или несколько модулей? - PullRequest
0 голосов
/ 28 октября 2019

Я создаю свой первый компонент в ReactJS и хочу опубликовать его в виде пакета npm для использования другими приложениями.

В настоящее время мой компонент <FooComponent /> создается с помощью Webpack (через babel-loader). Я пишу это в ES6 и веб-пакет собирает его в один большой грязный dist/index.js файл.

Когда я использую этот компонент / пакет npm в другом Реактивном компоненте в другом проекте, я получаю сообщение об ошибке

import FooComponent from "foo-component";

...
render () {
  <div>
    <FooComponent someProp={true} />
  </div>
}
Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.

Я предполагаю, что даже еслиЯ делаю export default FooComponent внутри своего компонента npm, он компилируется в vanilla JS с веб-пакетом, который не может быть повторно импортирован модулем ES6 другого приложения.

Итак, это подводит меня к сути моего вопроса - как мне публиковать свой пакет npm?

  • Есть ли способ исправить вышеперечисленное и импортировать файл vanilla bundle.js (созданный Webpack) в модули ES6?
  • ИЛИ Должен ли я выводить отдельные модули, которые другие приложенияможно импортировать? И в этом случае я предполагаю, что мой компонент просто скомпилирован / перенесен / связан с кодом этого приложения?

Я запутался, потому что некоторые проекты на Github, похоже, имеют папку dist/ с скомпилированным выводом, а другие, такие как act-npm -ilerplate , даже не используют Webpackи просто используйте bable для переноса файлов и все (т.е. 2-й вариант выше).

Нужно понять, что вызывает проблему import и что такое подход «отраслевого стандарта».

Спасибо!

...