当前位置: 首页 > 知识库问答 >
问题:

如何使用webpack ProvidePleugin对array.prototype.find进行polyfill?

鱼征
2023-03-14

我正在使用webpack,并根据示例分别基于whatwg-fetch和es6-promise包为较旧的浏览器提供了polyfill fetch和Promise。

new webpack.ProvidePlugin({
    'fetch': 'imports?this=>global!exports?global.fetch!whatwg-fetch',
    'Promise': 'exports?global.Promise!es6-promise'
}),

但是,现在我需要polyfill array.prototype.find(),但是找不到如何使用WebPack的ProvidePleugin特性实现这一点。find的不同之处在于,它本质上是数组原型上的一个方法,我还没有找到如何使用ProvidePleugin指定此类内容的任何示例。有没有人使用webpack对ES6的数组函数进行聚类填充?有什么关于如何实现这一点的指示吗?我做这件事的方式是错误的/过时的,还是有更好的方法来实现我所需要的?

到目前为止,我已经尝试使用paulmillr的polyfill包对语法进行了实验,但是在ProvidePleugin中使用它还没有成功。

在这方面做了更多的研究后,我找到了巴别塔。和这些资源:

    null

我还发现babel-polyfill中缺少window.fetch polyfill,这解释了为什么它通常是由providePleugin处理的特殊情况。我还拼凑出ProvidePleugin更多的是一个方便的工具,而不是一个通用的工具来应用Polyfill。直接导入babel-polyfill并除去Promise和除fetch之外的其他ES6 PollyFill在我的实验中显示出了一定的前景。

共有1个答案

尉迟卓
2023-03-14

我现在确定的是下面的解决方案

在应用程序的根目录中,导入/要求babel-polyfill用于一般的ES6 polyfill(如array.prototype.find、object.assign和promise)。由于fetch是一种特殊情况,因为它被视为不适用于所有环境,所以为whatwg-Fetch包含了一个单独的polyfill。

import "babel-polyfill";
import "whatwg-fetch";

在webpack配置中,删除通过ProvidePleugin提供的任何ES6特性,但保留任何其他便利(例如JQuery orz)。

new webpack.ProvidePlugin({
    $: "jquery",
    jQuery: "jquery",
    // 'fetch': 'imports?this=>global!exports?global.fetch!whatwg-fetch',
    // 'Promise': 'exports?global.Promise!es6-promise',
}),
 类似资料:
  • 问题内容: 我阅读了Firestore文档以及Internet(stackoverflow)上有关Firestore分页的所有文章,但没有运气。我试图在文档中实现确切的代码,但是什么也没有发生。我有一个包含项目的基本数据库(超过1250个或更多),我想逐步获取它们。通过滚动以加载15个项目(到数据库中的最后一个项目)。 如果使用文档代码: 怎么做?文档没有太多细节。 PS:当用户滚动时,我需要使用

  • 我试图将Docker registry V2 API与Google Container registry一起使用,特别是这个endpoint: 但我希望使用代码,而不是通过CLI,也不使用。我有一个服务帐户和一个json密钥文件。有可能吗? 这是一个相关的问题获得服务帐户auth令牌没有GCloud?但是所选答案中的链接对这种需要没有帮助。

  • 问题内容: 我正在和朋友一起在网上商店工作。他使用PHP为我设置了一个Cookie,并在购物车中添加了一定数量的产品。cookie称为“购物车”,带有产品数量的变量称为“ items”。 而且,我必须阅读cookie并使用javascript获取“购物车”的值并将其打印在HTML文档中,但是我不知道如何使用它,请您能帮我吗?我以前从未使用过Cookie或JSON,但我认为应该使用JSON完成,您能

  • 本文向大家介绍如何使用nodejs对base64进行编解码?相关面试题,主要包含被问及如何使用nodejs对base64进行编解码?时的应答技巧和注意事项,需要的朋友参考一下 轮子, https://www.npmjs.com/package/js-base64

  • 我需要使用远程代理服务器进行测试,但代理需要登录名和密码进行授权。我尝试使用: 帮助我理解我的错误,我确定这是可能的,但如何。我有一个例外:

  • 问题内容: 我想知道是否可以在SQLAlchemy中生成一个语句而无需使用显式地请求它。如果我使用: 然后它会生成如下内容: 这在使用InnoDB的MySQL中要慢得多。我正在寻找一种不需要表具有已知主键的解决方案,如使用SQLAlchemy获取表中的行数中所建议。 问题答案: 我设法在两层上使用SQLAlchemy呈现以下SELECT。 SQL表达式层的用法 来自ORM层的用法 您只需将其子类化