未使用polyfill来定义require来修复Promise未在IE 11上定义

时间:2018-09-12 11:42:15

标签: javascript babel-polyfill

我在Internet Explorer 11上收到错误消息Promise is not defined,我安装了babel-polyfill和npm来修复它,并在顶部设置了js(简单js文件) ,而不是此代码中包含的文件

require("@babel/polyfill");

但是我得到了require is not defined。如何包含polyfill?

1 个答案:

答案 0 :(得分:2)

要使用require或ES6的import,您将需要打包器,例如webpack,parcel.js或汇总。

要在不使用捆绑程序的情况下使用polyfill,您需要在之前您自己的JS中将此脚本包含在HTML中:

https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/7.0.0/polyfill.min.js

因此添加一个script标签:

<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/7.0.0/polyfill.min.js"></script>

在这种情况下,您当然可以从自己的JS中删除该行require("@babel/polyfill");

如果您已经在使用babel进行转译,则还可以使用this pluginimport '@babel/polyfill'语法转换为浏览器可以理解的内容。