J'ai une application plus ou moins vanilla laravel + vue.js et j'essaie de faire des JS Test avec Karma et Jasmine . Si j'essaie d'utiliser une affirmation triviale comme p > semble fonctionner correctement (voir la dernière ligne) p> i obtenir une erreur: p> alors Babel se plaint (sur la première ligne, avant que le karma ou les bottes de Phantomjs up) p> Cela semble impliquer que le fichier Voici les fichiers pertinents: p> () => {} code> fonctions de style ou des mots-clés tels que
const code> dans mes tests, ils échouent avec
importer code> et je suis capable de transpirer et de travailler avec
.vue code> fichiers sans problème.
const code> déclaration à ma fonction de test p>
exemple.spec.js code> est analysé / transpilé par Babel, mais que la version transpilée n'est pas livrée au navigateur correctement, même si le fichier
exemple.vue code> semble être livré correctement. p>
const code> et
() => {} code> fonctionner dans mes tests? strong> Merci . P>
{
"private": true,
"scripts": {
"prod": "gulp --production",
"dev": "gulp watch"
},
"devDependencies": {
"bootstrap-sass": "^3.3.7",
"gulp": "^3.9.1",
"jquery": "^3.1.0",
"laravel-elixir": "^6.0.0-11",
"laravel-elixir-vue-2": "^0.2.0",
"laravel-elixir-webpack-official": "^1.0.2",
"lodash": "^4.16.2",
"vue": "^2.0.1",
"vue-resource": "^1.0.3"
},
"dependencies": {
"jasmine-core": "^2.5.2",
"karma": "^1.3.0",
"karma-babel-preprocessor": "^6.0.1",
"karma-chrome-launcher": "^2.0.0",
"karma-firefox-launcher": "^1.0.0",
"karma-jasmine": "^1.0.2",
"karma-phantomjs-launcher": "^1.0.2",
"karma-webpack": "^1.8.0"
}
}
3 Réponses :
Les commentaires de @craig_h et @panjunjie m'ont mis sur la bonne voie de la recherche de la configuration de , puis je ruie et nettoyé mon mon Avec tout cela, je peux maintenant utiliser tout le bonté ES2015 comme Karma-Babel-Préprocessor Code>, qui m'a conduit à la configuration pour
karma-webpack code>. Je ne suis toujours pas sûr de ce qui causait le problème initial, mais il semble que ma configuration WebPack pour le karma était incorrecte ou incomplète et manquait de silencieusement. J'ai ajouté
babel-loader code> et
babel-preset-es2015 code> paquets via
karma .conf.js code> comme tel: p>
package.json ressemble maintenant à ceci: p>
const code> et
() => {} code>. Désolé de répondre à ma propre question, mais j'espère que cela aide quelqu'un d'autre qui rencontre un problème similaire. P> p>
Vous pouvez toujours répondre à votre propre question! C'est un peu tard, mais je soupçonne que c'est parce que const code> est ES2015 et Phantomjs ne le supporte pas encore ( github.com/ariya/phantomjs/issues/14506 ). Babel a probablement compilé que le JavaScript plus compatible pour vous avant d'être exécuté par Phantomjs.
J'ai eu un problème similaire (mais pas identique; votre configuration est assez spécifique). J'utilisais également Vue, Karma, Webpack et Phantomjs (tel que configuré dans le modèle VUE-WebPack). p>
Cependant, mon problème est que je définissais Ce problème a été corrigé lorsque j'ai déplacé ce fichier d'aide dans mon dossier Espérons que cela est utile pour les autres aussi. p> const code> dans un fichier d'assistance qui a été importé dans mon application. Quand j'ai changé
const code> à
var code> dans ce fichier, les tests ont pu exécuter. (Peu importait que
const code> a été utilisé ou non dans d'autres fichiers déjà dans le répertoire
src code>). p>
src code> ou l'un de ses sous-répertoires. Je suis trop novice pour savoir pourquoi cela a résolu le problème, mais je suppose que Babel n'était pas configuré pour travailler dans le dossier racine et que le dossier
src code>. p>
En plus du commentaire de Ryanquey: il a raison. La configuration par défaut VUE + WebPack CLI n'inclut que certains contextes à traiter par le chargeur Babel-Charger. Recherchez dans la version / webpack.base.conf.js, puis à la règle du module pour les fichiers JS. Vous pouvez voir que seuls les chemins SRC, Test et Node_Modules / WebPack-Dev-Server / Client Server sont inclus (à l'heure de cette écriture). P>
S'il vous plaît essayez de vous attendre (vrai) .to.equal (vrai);
Dans le DOCS KARMA-BABEL-PREPROCESSOR dit: "AS de Babel 6.0, vous Besoin de dire à Babel, qui fonctionnent à utiliser », je n'utilise pas Webpack, mais je ne vois pas que vous ne pouvez pas vous voir définir les préréglages nulle part dans le code que vous avez montré.
Comme Craig ait dit, Babel a des étapes différentes de la prise en charge ES6, essayez d'utiliser
ES2015 code> +
étage-3 code> dans votre
.babelrc code>, cette combinaison transpile dans mon cas.
Merci pour les commentaires @CRAIG_H et PANJUNJIE. J'ai finalement pu créer une configuration de travail. Voir ma réponse pour plus de détails si vous êtes curieux.