javascript - Transpiler och Internet Explorer 8


Jag vill använda BabelJS för mitt nya projekt, men jag har ett stort krav: Det måste kunna köras på IE8.

PROBLEM: Babel kompilerar ES6 till ES5. Stödet för ES5 på IE8 är dåligt.

Känner du till alternativ till Babel som låter mig skriva "OOP"-kod, lätt att debugga och "IE8-vänlig"?

Svar #1

Du kan använda Typescript, det ger dig möjlighet att bygga kod som är kompatibel med EcmaScript 3.

Allt du behöver för att komma igång med TypeScript - är att skapa ett enkelt projekt i Visual Studio (eller VSCode/Sublime/WebStorm), och konfigurera tsconfig.json så här

{
  "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"
  ]
} 

Lycka till!

Relaterade resurser

  1. TypeScript i WebStorm
  2. TypeScript Sublime-plugin
  3. TypeScript i VS Code

Svar #2

Babel har ett 'löst' läge för flera av dess transformationer som gör att de genererar kod som använder färre avancerade ES5-funktioner, på bekostnad av mindre specifikationskompatibilitet. Generellt, om du aktiverar dem och undviker ES5-specifik syntax som getters och setters, borde saker fungera i IE8.

Mycket av detta täcks på sidan med förbehåll.

Relaterade artiklar