麻烦透明化startsWith()使用Babel和Rollup

时间:2018-03-03 20:26:18

标签: javascript ecmascript-6 babel rollup

我在使用Rollup和Babel转发ES2015的startsWith时遇到了意想不到的麻烦。我使用babel-preset-env并在我的.babelrc

中包含以下内容
{
   "presets": [
     ["env", {
       "targets": {
         "browsers": ["last 2 versions", "not ie >= 10"]
       }, 
       "debug": true
     }]
   ]
 }

我的rollup.config.js设置为尊重我的.babelrc,并且我发现它在我的调试信息中正确输出它尊重我的浏览器目标。尽管如此,在我的捆绑JS中,我看到startsWith未被触及,在任何地方都看不到填充物。

我可能做错了什么?

1 个答案:

答案 0 :(得分:2)

Babel只会转换语法(如let / const,箭头函数,类等),而不是API方法(如.startsWith().includes())。

为此,你需要一个polyfill,比如babel-polyfill。但是,如果您只需要.startsWith函数a simpler polyfill will suffice。那,或者您可以简单地创建自己的startsWith()函数并使用它。