所以,到目前为止,我的工作流程是
import "babel-polyfill";
使用async
/ await
等功能要求babel在转换中包含再生器运行时。
对于需要我模块的用户,我看到了以下问题:
babel-polyfill
转换代码。由于babel-polyfill
只需要一次,因此根本无法使用我的模块。babel-polyfill
,则babel不知道模块 需要babel-polyfill
并且赢了&# 39;尊重生成的require
顺序(至少我认为发生的事情)。我最近创建了一个不带babel-polyfill
的npm模块,但要求用户在我的npm模块上调用babel-polyfill
之前包含require
,因为它使用async
和await
。
因此,在我目前的项目中,我想在index.js
中使用我的模块:
import "babel-polyfill";
import Server from "./Server";
import foo from "bar";
import baz from "qux";
其中Server
是一个扩展我的模块的类,需要babel-polyfill
。
然而,index.js
的翻译开头是这样的:
!function(e, r) {
if ("function" == typeof define && define.amd)
define(["bar", "qux", "./Server", "babel-polyfill"], r);
else if ("undefined" != typeof exports)
r(require("bar"), require("qux"), require("./Server"), require("babel-polyfill"));
// etc.
}();
在这里,我可以清楚地看到./Server
在 babel-polyfill
之前需要,尽管我的ES2015 import
语法要求相反。事实上,整个订单都是混乱的。
这就是我收到错误的原因:
ReferenceError: regeneratorRuntime is not defined
如何告诉babel尊重我的来源订单?