【问题标题】:Promise is undefined in IE11 using babel-polyfill使用 babel-polyfill 在 IE11 中未定义 Promise
【发布时间】:2018-09-23 20:47:30
【问题描述】:

正如标题所说,即使我想使用 babel-polyfill 来允许我在代码中使用 Promise,但我在 IE11 中遇到了未定义的错误。

我已经尝试过一段时间了,因为我已经看到在不同的网站上被问过几次,但是没有一个解决方案真的对我有用(或者更准确地说,我可能无法做到使它们适应我的代码)

这些是我认为涉及的文件:

.babelrc

{
    "presets": [
        "es2015",
        "react"
    ]
}

package.json:我在 dev-dependencies 下有 babel-polyfill,并试图将它放在依赖项下(都只是通过控制台手动交换和安装它),但似乎没有一个工作

我的 script.js 没有将它作为导入(但如果我尝试导入 @babel-polyfill,或者当我在 package.json 中看到该语法时使用正斜杠的不同组合,则找不到该模块)

我的 gulpfile.babel.js 终于有了这个任务:

gulp.task('build:js', ['lint'], () => {
    return browserify({
            entries: path.resolve(paths().source.js, 'script.js'),
            extensions: ['.jsx'],
            debug: true
        })
        .transform(babelify)
        .plugin('minifyify', {
            map: 'script.js.map.json',
            output: path.resolve(paths().public.js, 'script.js.map.json')
        })
        .bundle()
        .pipe(source('script.js'))
        .pipe(gulp.dest(path.resolve(paths().public.js)))
        .pipe(notify({
            onLast: true,
            message: 'Building JS done'
        }));
});

我做错了什么?

谢谢

【问题讨论】:

  • 您的预设已弃用。使用@babel/preset-env 并切换到 Babel 7。

标签: gulp browserify babel-polyfill


【解决方案1】:

您需要在 任何 JS 入口点中的其他非 polyfill 代码之前导入 Babel polyfilly:

import 'babel-polyfill';

或者如果你已经切换到 Babel 7:

import '@babel/polyfill';

另请注意,您应该将预设切换为preset-env。我建议你升级到 Babel 7 并使用 @babel/preset-env

假设你已经切换到 Babel 7,你的 .babelrc 应该是这样的:

{
  "presets": [
    [ "@babel/preset-env", {
      "targets": {
        "browsers": [ "last 1 version", "ie >= 11" ]
      }
    }]
  ]
}

【讨论】:

  • 现在看起来像 @babel/polyfill has been deprecated 支持 core-js
  • @Mr5o1 非常有趣,谢谢指出!但是,您链接的页面上的信息非常稀疏。也许您想在这里测试一下并给出另一个答案?
【解决方案2】:

从 Babel 7.4.0 你需要安装和导入这些库:

import "core-js/stable";
import "regenerator-runtime/runtime";

就像他们在这里说的:https://babeljs.io/docs/en/babel-polyfill

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多