问题标签 [babel-polyfill]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
248 浏览

javascript - babel-runtime 不适用于实例方法

我理解 babel-runtime 和 babel-polyfill 之间的区别,第一个不填充全局范围,而后者填充。我认为 babel-runtime 更安全,但我无法理解这意味着什么以及它对我有何影响:

注意:诸如 "foobar".includes("foo") 之类的实例方法将不起作用,因为这需要修改现有的内置函数(为此使用 babel-polyfill)。

据我了解,实例方法就像map, filter, reduce是因为它们是在现有对象上调用的。哪个例子不会被 babel-runtime 验证?:

如何准确识别实例方法?

我在我的项目中将 babel-polyfill 替换为 babel-runtime,因为它应该会更好,但现在我不确定什么可以安全使用。

0 投票
1 回答
521 浏览

ember.js - Ember Cli - 添加了 Polyfill Internet Explorer 错误对象

我有一个问题,我没有看到有人遇到这种问题。基本上我做了一个帮助器来格式化日期,它有一些 EcmaScript 的语法,比如 let 或 expoorts。它可以在除 INTERNET EXPLORER 之外的所有浏览器中运行,所以我可以配置 Polyfill,所以我阅读了文档以使用 ember-cli-babel 配置它,但我无法看到预期的结果。

我有一个 ember 应用程序,带有 ember cli

我在我的花椰菜文件中包含 POLYFILL,就像这个 ember-cli

我有一个灰烬助手来格式化日期,它是:

但是当 Internet Explorer 11 渲染站点时,调试器中出现如下错误: 错误图像

错误说是预期的对象。并且您可以看到该行之后显示的错误

所以我不知道从哪里开始,我尝试修改一点,app.js,但没有运气,我也尝试使用这个转换器将我的 ES6 代码转换为 ES5: https ://babeljs.io/repl/

但当然它没有用,也不是这个想法。

0 投票
1 回答
752 浏览

internet-explorer-8 - 让 Webpack 2 支持 IE8

我想在仍然必须支持 IE8 的大型项目中使用 Webpack 2。

我已经安装了babel-preset-env,因此一旦每个浏览器都不受该项目的支持,我就可以在将来轻松地逐一弃用任何 IE < 11。

根据 babel-preset-env 自述文件“如果您的目标是 IE 8 和 Chrome 55 [babel-preset-env] 将包括 IE 8 所需的所有插件,因为您仍然需要同时支持这两者。”

据我了解,我还主要需要安装babel-polyfill它的 IE5 shim,还需要安装它的 ES6 和我可能希望使用的 7 功能的 polyfill。

然而,安装了这些东西后,我的代码仍然在 IE8(在 Browserstack 中)Object.defineProperty(__webpack_exports__, "__esModule", { value: true });首次运行时出现问题。我认为一个功能正在被垫片“修复”。

是不是没有被正确地填充?我错过了一步吗?

0 投票
0 回答
1001 浏览

javascript - babel-polyfill 与 IE11 中的对象混淆

我有一个 1 年前的带有服务器渲染的 React 应用程序,它已经投入生产了一段时间,

但是,在此之前几天就检测到,该应用程序停止与 IE11 一起使用。这真的很奇怪,因为我们已经在 IE11 上进行了多次测试,并且之前也可以正常工作。我们甚至尝试回滚项目(使用标记的 docker 映像),但仍然出现此错误。

根本原因似乎babel-polyfill在于以某种方式改变了在 IE11 中创建对象的方式。

创建的对象将具有jscomp_symbol_Symbol.toStringTag1" Array Iterator"

这是我在控制台上找到的:

在此处输入图像描述

console.log({})如果您有 IE11,请尝试此输入,它会以不同的方式输出。

这不知何故导致我的网络应用程序失败,因为每个对象都会失败 lodash_.isPlainObject这是里面的条件Redux

0 投票
0 回答
1278 浏览

javascript - 未处理的承诺拒绝 TypeError:方法 Promise.prototype.then 在不兼容的接收器上调用

使用 babel-preset-env、babel-polyfill 库构建。

错误:未处理的承诺拒绝类型错误:方法 Promise.prototype.then 调用了不兼容的接收器函数(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this ._v=void 0,this._h=0,this._n=!1}

包.json

如果有人知道是什么原因造成的,请回答。

我认为可能是一个 promise polyfill 问题.. 因为 function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}这个函数来自 promise polyfill..

babel-polyfil 模块中的堆栈跟踪。

错误发生在下一行

抱歉,我无法重新生成错误。我记得它是在该行中触发的。

0 投票
1 回答
186 浏览

javascript - 使用 webpack 时自定义处理程序不起作用

我有一个自定义处理程序,用于获取单选按钮检查值:

我在我的视图模型中导入并注册它:

活页夹仅在初始加载时起作用,但是,单击单选按钮时,不会触发活页夹更新。

这是移动到 webpack + babel-loader 之前的工作文件。

有谁知道在使用 Webpack 加载模块时如何使 KO 自定义绑定器工作?

0 投票
0 回答
972 浏览

javascript - 错误:只允许一个 babel-polyfill 实例

我的 JavaScript 正在使用babel-polyfill。我正在使用像单页应用程序这样的插件。现在有人实现了另一个插件并得到一个错误,因为他babel-polyfill也在使用。

错误:只允许一个 babel-polyfill 实例

我在网上看到很多关于它的帖子。像这样的解决方案

但我认为代码是由生成的webpacker,修改输出感觉被黑客入侵了。是否有此配置,或者我是否必须使用类似 powershell 脚本之类的东西来执行此操作?

其他解决方案就像babel-polyfill仅在您的主应用程序中使用 - 插件被加载的地方。但在我的情况下,主机应用程序不应该知道babel-polyfill. 两个插件也可以一起安装,但不是必须的。

现在我可以试试

  • babel-runtime,但我不想更改我的整个代码以匹配babel-runtime。另外我不知道其他作者是否也愿意更改他的代码。
  • iframe,但我认为很难处理我的后端与iframe.

有什么解决办法吗?

0 投票
2 回答
7385 浏览

babeljs - babel-polyfill 与 babel-plugins

我有点迷失在 Babel 选项/配置中。我想使用最近的 js 功能并编译(使用 webpack)到浏览器代码。

babel-polyfillbabel 插件有什么区别babel-preset-env

他们打算一起工作吗?

0 投票
1 回答
1414 浏览

node.js - 如何使用“npm link”链接 babel 转译模块

我当前的项目(我的项目)中有很多代码需要在新项目中使用。这段代码是用 ES6 编写的,然后用 babel 转译。

我使用此共享代码创建了一个名为“my-module”的模块,并将其链接到“my-project”npm link

问题是当我启动项目时,“my-module”中的代码没有被转译,并在导入语句处引发错误。

my-module 中的代码将被大量编辑。如何使它起作用?

包.json

.babelrc

0 投票
1 回答
1362 浏览

webpack - Webpack tree-shaking 可以删除未使用的 babel-polyfills 吗?

我尝试让 webpack tree-shaking删除未使用的babel-polyfill.

index.js文件包含:

在这个文件中,没有代码需要任何 es2015+ polyfill,所以我希望通过 tree-shaking 移除捆绑输出中未使用的 babel-polyfill。事实并非如此,并且捆绑包仍然包含它们(缩小)。

这是带有此代码的 git 存储库

webpack 配置:

.babelrc

我试图用 替换babel-minify-webpack-pluginuglifyjs-webpack-plugin但它给出了相同的结果。

如何使 tree-shaking 工作,并且输出不包含babel-polyfills原始代码中未使用的任何内容?