【问题标题】:IE8 support ES3. not ES5 or more. could babel help it?IE8 支持 ES3。不是 ES5 或更高版本。 babel 能帮上忙吗?
【发布时间】:2016-07-18 04:55:40
【问题描述】:

我使用 ES6 和 babel 来兼容 ES5。

但我必须支持 IE8 的 ES3

错误表示“预期标识符”。

所以我应用了 es3ify、成员表达式文字、属性文字、模块文字

等等,但他们没有工作

这就是我在这里的原因

我认为“.dafualt”是保留字。

昨天,我找到了这个链接

https://phabricator.babeljs.io/T7199

最后,有人说它有效。

但不适合我。这些是我的代码。

var babelQuery = {
  presets: ['es2015-loose'],
  plugins: [
    "transform-runtime",
    "transform-proto-to-assign",
    "transform-es3-modules-literals",
    "transform-es3-member-expression-literals",
    "transform-es3-property-literals"
  ]
}

webpack.config

module: {
    loaders: [
      {
        test: /\.js$/,
        include: path.join(__dirname, 'src'),
        exclude: /node_modules/,
        loaders: ['babel-loader', `babel?${JSON.stringify(babelQuery)}`,  ] //'babel',
      },
    ],
  }

我做错了什么?

另外,我没有exclude: /node_modules/,但结果相同。

【问题讨论】:

  • 您应该已经编写了与 ECMAScript ed 3 兼容的代码,但现在很难做到这一点,因为您可能正在使用无法兼容的功能。从 ed 3 到 5.1 的大部分时间都有 polyfill,例如es5-shim.

标签: javascript


【解决方案1】:

首先要知道,除非你为 ES3 编写代码,否则任何解决方案都不能保证有效。

我会说你应该试试Babel polyfillTheir website

由于 Babel 假设您的代码将在 ES5 环境中运行,因此它使用 ES5 函数。因此,如果您使用的环境对 ES5 的支持有限或不支持,例如较低版本的 IE,那么使用 babel-polyfill 将增加对这些方法的支持。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多