babel-plugin-macros与Sweet.js的用例是什么?

时间:2016-02-21 15:19:57

标签: webpack babeljs sweet.js

我对JavaScript中的宏感到好奇,对how babel-plugin-macrosSweet.js相互比较感到有些困惑。他们都解决了同样的问题吗?它们都适合相同的工具链吗?

特别是,我希望将这些工具中的一个与ES2015代码一起使用,这些代码将使用Webpack和Babel转换为ES5,并且不确定这些工具中的任何一个如何与转换相互作用。

1 个答案:

答案 0 :(得分:3)

是的,他们解决了同样的问题,即添加' JavaScript的宏,但他们确实以不同的方式接近它。首先,它们每个都有不同的语法来定义宏。我不清楚是否遵循某种标准。 Sweet.js是独立的,而babel-plugin-macros是Babel插件。我想可以将它们作为同一工具链的一部分使用,人们可能会这样做,如果他们更喜欢Sweet.js。但是,如果已经使用了Babel,那么使用Babel插件可能要容易得多。

我对于深入研究这一点非常谨慎,因为它似乎还没有成为JavaScript的标准。它可能会让源映射正常工作,特别是如果将Sweet.js与Babel结合使用会产生麻烦。

说过宏(特别是使用Sweet.js语法)看起来像是一个非常强大的JavaScript增强功能。如果只将它们作为标准包含在ECMAScript中。

<强>更新

自从我原来的答案以来,我没有调查过这个细节,但看起来Sweet.js现在使用Babel作为后端,所以对于这个问题可能有更好的答案。见http://sweetjs.org/doc/1.0/tutorial.html#_babel_backend