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

标签 javascript ecmascript-6 babeljs 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 .但是,如果您只需要 .startsWith 函数,a simpler polyfill will suffice .那,或者您可以简单地创建自己的 startsWith() 函数并使用它。

关于javascript - 使用 Babel 和 Rollup 转译 startsWith() 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49088881/

相关文章:

javascript - 如何在 *ngFor 中获取 *ngIf 的第一个真值

javascript - Vue.js:观察数组长度

javascript - 使用 babel 时,无法通过多个并发 jQuery 请求获取 AJAX 响应数据

next.js - 解析错误 : Cannot find module 'next/babel'

javascript - `.babelrc` 文件在嵌套的node_modules文件夹中找不到预设

php - 从 Smarty PHP 循环 (JQuery) 内的 select 获取选项值

javascript - Bigcommerce 处理付款与 api 401 错误代码 10001

javascript - jQuery 切换自定义动画

javascript - 如何使用Javascript基于动态数据合并多个对象

javascript - 如何更改 State 中嵌套对象的属性?