Babel 将新请求 (fetch-api) 转换为函数调用,导致 Chrome 中出现错误

Babel transforming new Request (fetch-api) to function call, causing errors in Chrome

我写了一个单独的 API 库,我将其保留为纯 ES6(带有生成器等),但它依赖于 isomorphic-fetch 库(因此它可以在节点和浏览器上下文中使用).

在另一个项目中使用 webpack 2 导入它时,一切正常,直到我尝试完成 minification/optimization 过程。由于不支持的生成器语法,UglifyJS 不会处理它。所以我尝试 运行 通过 babel 将该库作为 webpack 加载程序,但是现在当尝试 运行 浏览器中的代码时,我收到以下错误:

Uncaught (in promise) TypeError: Failed to construct 'Request': Please use the 'new' operator, this DOM object constructor cannot be called as a function.

我好像陷入了第 22 条军规,我不确定为什么 Babel 保留某些原生 classes 但不保留 Request class.

非常感谢任何帮助,我一直在为这个问题敲桌子。

我解决了这个问题,原来我需要 babel-plugin-transform-builtin-extend 插件,因为在 API 库中,我扩展了基础 Request 对象。