babel是否提供了将es6 import语句转换为AMD'require'调用的方法

时间:2015-09-22 15:59:15

标签: javascript requirejs ecmascript-6 amd babeljs

Babel AMD模块格式化程序非常适用于模块,将脚本包装在define语句中。但是,我的项目还有“页面脚本”,应该在加载依赖项后立即执行。这些应该包含在require语句中。

Babel是否提供了实现此目的的方法?

1 个答案:

答案 0 :(得分:0)

我没有办法让Babel产生这样的东西:

require(['foo'], function (foo) {
   ... 
});

Babel文档中AMD的所有示例都显示Babel生成define(...。此外,似乎没有任何明确的方法在ES6中指出Babel生成的 应该是require来电,而不是define来电。因此,Babel输出require的指令必须是语言外的。

我已经看了source生成AMD模块。我没有看到任何会导致Babel输出require电话的逻辑。

如果我决定需要一个允许我这样做的模块翻译器,我会从the class in this module派生一个新类,这个类允许指定在某些情况下应该调用require是生产而不是define。我不太了解Babel,知道是否可以防止生成无效的创作(例如require调用中尝试export任何内容的代码。

否则,您可以随时拨打require