cbe*_*enz 14 javascript babeljs
注意:我在Babel问题跟踪器(https://phabricator.babeljs.io/T2653)上发现了这个问题并被拒绝了,但AFAIK的作者没有在这里问过它.
我已经检查了像package/babel-plugin-syntax-do-expressions这样的 Babel插件,看起来这些ES6 +新语法/运算符实际上并没有在插件中实际定义,而是在Babylon中实现,只是通过这些来切换插件.
在最新博客文章中声称"开发人员已经构建了从调试工具到实验性新语法的所有内容[...]以在其代码库上强制执行复杂规则"这一说法"可疑 - 实际上,我已经搜索了整个插件生态系统,但发现没有插件能够提供新的运营商/语法,只有一个插件能够为少数现有运营商提供运营商重载.
那么,使用Babel v6我们是否能够看到在用户空间中定义新的运算符/语法,以及如何?
这也是我有机会感谢整个Babel团队的出色工作!
PS:我开始搜索如何扩展Babylon解析器语法,以实现一个插件,它将像Julia方法一样实现"模式匹配" .
从 Babel v6.18.0 开始,parserOpts添加了允许将配置传递给解析器的选项,即传递给Babylon。
Babylon 接受 options plugins,可用于指定要启用的插件名称列表。在撰写本文时,您只能参考Babylon 中内置的插件之一。
有多个建议允许外部插件,例如
共识是~
过去,我们一直反对允许对巴比伦进行外部扩展的想法。支持自定义解析比支持自定义转换要困难得多。Babel 已经有很多它必须支持的东西,所以我们不想打开它。
– https://github.com/babel/babylon/pull/5#issuecomment-195801336
要启用自定义解析,您需要:
babel -plugin-transform-exponentiation-operator插件添加了一个新的运算符 ( **)。看起来您应该能够从他们的代码(非常简单)开始构建您自己的不同的运算符。
| 归档时间: |
|
| 查看次数: |
1489 次 |
| 最近记录: |