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



我对 JavaScript 中的宏很好奇,对 babel-plugin-macros 和 Sweet.js 的比较有点困惑。它们都解决了同一个问题吗?它们都适合同一个工具链吗?

特别是,我希望将这些工具之一与 ES2015 代码一起使用,这些代码将使用 Webpack 和 Babel 转译为 ES5,并且不确定这些工具如何与转译交互。

是的,他们解决了将宏"添加"到 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

最新更新