функция, экспортируемая в глобальную область, не определена (webpack + babel) - PullRequest
0 голосов
/ 18 июня 2019

У меня есть три отдельные библиотеки -

  1. Lib A - размещает общий код и использует babel для переноса кода в папку / lib
  2. Lib B - который использует libA (импортирует код, передаваемый babel) и использует webpack для генерации пакета в папке dist (dist / index.js). Он также экспортирует глобальную функцию «myGlobalFunction», прикрепляя ее к окну.
  3. Lib C - использует как A, так и глобальную функцию myGlobalFunction.

Проблема в том, что window.myGlobalFunction при доступе из lib C печатает неопределенное значение.

В библиотеке B, если я импортирую содержимое библиотеки Lib A из src / вместо перенесенной библиотеки lib /, моя проблема будет решена автоматически.

Не уверен, почему это происходит. Кроме того, я отключил перевозку модулей es в babel, установив

{modules: false} 

в babelrc из libA.

У меня есть проблема , похожая на эту , но опубликованное там решение не сработало, так как мне нужно использовать глобал в какой-то другой библиотеке, непосредственно просматривая объект Window.

Все библиотеки являются отдельными пакетами npm.

1 Ответ

0 голосов
/ 20 июня 2019

Я выяснил, как проблема заключается в том, как babel переносил код из LibA - особенно код, включающий async ... await.

Он использует предустановленную среду env и регенератор fb для переноса async..await вОбещания с использованием генераторов.

Я отключил плагины "transform-Регенератор", "Transform-Async-to-Generator" и использовал плагин fast-async , чтобы выполнить работу, и моя проблема была решена.

Другим способом является использование плагина времени выполнения преобразования babel , который также решил мою проблему.

Я подозреваю, что основной проблемой был код, использующий регенераторRuntime, не был решен, не уверен насчет этого, но обходной путь решил мою проблему.

...