Transpiller 和 Internet Explorer 8

Transpiller and Internet Explorer 8

我想在我的新项目中使用 BabelJS,但我有一个很大的要求:它必须在 IE8 上可执行。

问题:Babel 将 ES6 编译为 ES5。 IE8 对 ES5 的支持很差。

你知道 Babel 的替代品吗?这些替代品让我可以编写 "OOP" 代码,易于调试并且 "IE8 friendly"?

您可以使用 Typescript, it give you possibility to build EcmaScript 3 兼容性代码。

使用 TypeScript getting started 所需要做的就是在 Visual Studio(或 VSCode/Sublime/WebStorm)中创建简单的项目,然后像这样配置 tsconfig.json

{
  "compilerOptions": {
    "target": "es3",
    "declaration": true,
    "noImplicitAny": false,
    "removeComments": true,
    "noLib": false,
    "emitDecoratorMetadata": true,
    "sourceMap": true,
    "listFiles": true,
    "outDir": "",
    "out": "./Compiled/myfile.js",
    "experimentalDecorators": true
  },
  "files": [
    "myfile.ts"
  ]
} 

祝你好运!

相关资源

  1. TypeScript in WebStorm
  2. TypeScript Sublime Plugin
  3. TypeScript in VS Code

Babel 有一个 'loose' 模式用于它的几个转换,导致它们生成的代码使用更少的高级 ES5 特性,但代价是规范兼容性降低。一般来说,如果你启用它们,并避免像 getter 和 setter 这样的 ES5 特定语法,那么事情应该在 IE8 中工作。

the caveats page 中涵盖了大部分内容。