2017-03-15 5 views
1

Wenn IE11 verwenden, bekomme ich Fehler wie mein Code unten überall verwendet Object.entries oder Object.values:Wie Babel Transspile Object.entries/Werte in Aurelia CLI App?

Unhandled rejection TypeError: Object doesn't support property or method 'entries'...

Mein Problem I ergibt sich aus dem Code Figur nicht zu ES5 transpiled werden, war aber nicht sicher, wie Überprüfen oder ändern Sie meine Projekteinstellungen für das Transpilieren/Babel bei Verwendung der Aurelia CLI.

hinein Blick weiter, ich glaube, die Babel/Einstellungen mit Aurelia verpackt nicht Object.entries/Werte (oder anderen vorgeschlagenen ES2017 Optionen) unterstützen, so habe ich installiert babel-preset-es2017 und babel-plugin-transform-runtime pro einem anderen Thread - Babel support for Object.entries

jedoch Ich konnte nicht herausfinden, wie ich das Projekt aktualisieren sollte, um diese für das Transpilieren einzubinden. Hinzufügen in transform-runtime in aurelia.json oder .babelrc Datei bricht die au run und einfach hinzufügen es2017 in die .babelrc Datei schien nichts zu tun. Ich schaute auch auf die Dateien jsconfig.json und transpile.js, konnte aber keine Lösung finden.

aurelia.json Datei:

... 
"transpiler": { 
    "id": "babel", 
    "displayName": "Babel", 
    "fileExtension": ".js", 
    "options": { 
     "plugins": [ 
      "transform-es2015-modules-amd", 
      "transform-runtime" <---tried 
     ] 
    }, 
    "source": "src/**/*.js" 
}, 
... 

.babelrc Datei:

{ 
    "sourceMap": true, 
    "moduleIds": false, 
    "comments": false, 
    "compact": false, 
    "code": true, 
    "presets": ["es2015-loose", "stage-1", "es2017"], <---tried 
    "plugins": [ 
     "syntax-flow", 
     "transform-decorators-legacy", 
     "transform-flow-strip-types", 
     "transform-runtime" <---tried 
    ] 
} 

die transform-runtime in entweder Ergebnisse in der folgenden Fehler Hinzufügen:

Error: ENOENT: no such file or directory, open 'C:\Users...\src\babel-runtime\helpers\classCallCheck.js'

nicht sicher, warum ich erhalte diese Fehler oder wenn es beheben würde helfen, aber mein Vermutung könnte wegen der "source": src/**/*.js in aurelia.json

Jede Hilfe würde sehr geschätzt werden. Vielen Dank!

+1

'Object.values' wird Teil von ES201 ** 7 **, es ist nicht Teil von ES7 (ES2016). –

+0

@FelixKling Es war mir zunächst nicht klar, worauf Sie das hingewiesen haben, aber Sie haben es gelesen und den Fehler gesehen. Danke, dass du das verstanden hast. – YoYoWC

Antwort

0

Meine Lösung war die Installation des folgenden Plugins, indem Sie npm install babel-plugin-transform-es2017-object-entries --save-dev tun, die object.entries und object.values ​​transpiliert.

Die .babelrc Datei sah dann wie folgt aus:

{ 
    "sourceMap": true, 
    "moduleIds": false, 
    "comments": false, 
    "compact": false, 
    "code": true, 
    "presets": ["es2015-loose", "stage-1"], 
    "plugins": [ 
     "syntax-flow", 
     "transform-decorators-legacy", 
     "transform-flow-strip-types", 
     "transform-es2017-object-entries" 
    ] 
} 

Zusätzlich nach dem Babeljs.io (https://babeljs.io/docs/plugins/preset-es2017/), scheint es babel-preset-es2017 kein Plugin/Unterstützung für object.entries/Werte enthalten ist. Auch der Zweck von babel-tranform-runtime scheint für etwas anderes zu sein, als ich brauchte und ist nicht Teil meiner Lösung.

Verwandte Themen