[问题] 关于babel处理preset与plugin的顺序问题

楼主: tume209 (tume209)   2019-11-16 15:00:19
各位大大好,最近在学习babel设定时,官方说明处理顺序会先使用plugin再使用preset,假设设定为下(大概示意)
presets :
[ "@babel/env" , { useBuiltInt : false } ]
plugins :
[ "@babel/plugin-transform-runtime" ]
此时要babel的代码内有class语法,则env会生成的helper函数,而transform-runtime会接着将helper替换为引入runtime库内的档案。
但这样babel处理顺序不就变成
先preset → env生成helper
再plugin → 将helper移除,改成引入
这里是不是怪怪的阿?
作者: dododavid006 (朔雪)   2019-11-18 11:58:00
虽说 plugin 跟 preset 有加载的顺序问题,但是在plugin 里也可以指定处理的时间点是要在进入一个ast node 或是离开的时候,不过最重要的其实是transform-runtime 设定了一个特殊的选项helperGenerator 改变了 babel 如何产生那些 helper所以并不是等到 helper 产生后才去做转换,而是一开始就让它不会被 inline 到档案里去
楼主: tume209 (tume209)   2019-11-19 12:47:00
感谢大大说明!

Links booklink

Contact Us: admin [ a t ] ucptt.com