使用 Babel 和 Rollup 转译 startsWith() 时出现问题

Trouble Transpiling startsWith() Using Babel and 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 未受影响,在任何地方都看不到 polyfill。

我可能做错了什么?

Babel 仅转译语法(如 let/const、箭头函数、类 等)而不转译 API 方法(如 .startsWith().includes()).

为此,您需要一个 polyfill,例如 babel-polyfill. However, if you only need the .startsWith function, a simpler polyfill will suffice。那,或者您可以简单地制作自己的 startsWith() 函数并使用它。