簡體   English   中英

導出到全局范圍的函數是未定義的(webpack + babel)

[英]function exported into global scope is undefined (webpack + babel)

我有三個獨立的圖書館 -

  1. Lib A - 托管共享代碼並使用babel將代碼轉換為/ lib文件夾
  2. Lib B - 使用libA(導入babel轉換代碼)並使用webpack在dist文件夾(dist / index.js)中生成bundle。 它還通過將全局函數“myGlobalFunction”附加到窗口來導出它。
  3. Lib C - 使用A和全局“myGlobalFunction”。

問題是,從lib C訪問window.myGlobalFunction時,打印undefined。

在庫B中,如果我從src /而不是轉換的lib /導入Lib A的內容,我的問題會自動解決。

不知道為什么會這樣。 另外,我通過設置禁用了babel中的es模塊轉換

{modules: false} 

在libA的babelrc中。

我有一個類似於這個的問題但在那里發布的解決方案也沒有工作,因為我需要通過直接查看Window對象在另一個庫中使用全局。

所有庫都是單獨的npm包。

我想出了問題是babel是如何從LibA轉發代碼的 - 特別是代碼包括異步......等待。

它使用預設的env和fb的再生器運行時來使用生成器將async..await轉換為Promises。

我禁用了“transform-regenerator”,“transform-async-to-generator”插件,並使用快速異步插件來完成工作,我的問題得到了解決。

另一種方法是使用babel的轉換運行時插件 ,這也解決了我的問題。

我懷疑主要問題是使用regeneratorRuntime的代碼沒有得到解決,不確定,但解決方法解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM