Karma, PhantomJS und es6 Versprechen
Schreibe ich eine JavaScript-Bibliothek, mit der neuen es6 verspricht. Ich kann testen Sie die library in Firefox, weil Versprechen sind definiert. Jedoch, wenn ich versuche, mein test-code mit Karma und PhantomJS, bekomme ich die Fehlermeldung Can't find variable: Promise.
. Ich vermute, dass dies ist, weil die PhantomJS browser unterstützt kein es6 verspricht noch.
Wie kann ich konfigurieren Karma zu bringen, in der polyfill für verspricht?
InformationsquelleAutor der Frage Travis Parks | 2015-04-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie ziehen in die Babel polyfill, indem Sie einfach die Installation Babel Polyfill:
und dann die polyfill-Datei, bevor Sie Ihre Quell-und Testdateien innerhalb der
files
Abschnitt Ihrerkarma.conf.js
:Wenn Sie wissen, dass alle Ihre Ziel-Browser-Unterstützung Verspricht, werden Sie wahrscheinlich wollen, um dies zu übernehmen polyfill, um Ihr veröffentlicht zu bauen.
Wenn Sie das Gefühl wirklich abenteuerlich, die Sie verwenden können, Browserify, ziehen Sie Dateien in Ihrem Test mehr modular, und verwenden Sie dann Babelify zu transpile ES6 nach ES5. Ich habe eine Beispielprojekt mit diesen und ein working test mit einem Versprechen (läuft auf PhantomJS2) für Referenz.
InformationsquelleAutor der Antwort spikeheap
Für Babel 6, wir brauchen installieren
babel-polyfill
zu unterstützen Versprechen.und fügen Sie eine Zeile in
karma.conf.js
innerhalb derfiles
AbschnittEs ist gut dokumentiert
https://github.com/babel/karma-babel-preprocessor#polyfill
InformationsquelleAutor der Antwort gasolin
Diese thread Ihnen helfen sollen. Gemäß ihm, es scheint, Sie sollten versuchen, zu verwenden PhantomJS2 mit ES6.
Sie können auch nehmen einen Blick auf diese Projekt, das behandeln, die einen nahen Thema als deins.
Ich hoffe, es kann Ihnen helfen,
InformationsquelleAutor der Antwort Tony
Können Sie karma-babel-Präprozessor für Dateien, die verwendet ES6-features. Installieren Sie es mit
npm install --save-dev karma-babel-preprocessor
und fügen Sie dann angeben, welche Dateien sollte vorverarbeitet werden Sie
karma.conf
:InformationsquelleAutor der Antwort SET
als korrekt darauf hingewiesen, durch den Autor ist nicht in der Lage zu erkennen, es6 Versprechen. Um es zu laden, es6-Versprechen-Modul geladen werden können, mit Hilfe von webpack.ProvidePlugin und konfigurieren es in plugins-array von webpack.
Dies scheint für mich arbeiten!
InformationsquelleAutor der Antwort MKant