猿问

babel transform-runtime编译问题

babel 默认不编译 API, 引入 babel-plugin-transform-runtime 就能做到 静态方法的编译, 为什么 babel-plugin-transform-runtime 不去做内建方法的编译呢? 比如 'str'.padStart().

慕村9548890
浏览 431回答 1
1回答

温温酱

这个属于babel的架构上面的问题,他这样设计的初衷是用插件化处理,用不同的插件处理不同方面的事物【相反看来,其实增加了一定的学习成本和配置成本】。'str'.padStart(),对于这些需要被polyfill处理的api是在babel-polyfill包内的。但是babel-runtime与babel-polyfill的概念与使用场景也不一致,babel-runtime用于框架或是工具包,babel-polyfill则是用在实际项目中。这是由于babel-polyfill实际上是给所有的方法打了补丁,污染全局,如果是在框架内可能会导致很多问题。babel-plugin-transform-runtime的作用范围也只是在module内。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答