Vue: Exception d'exécution: les performances ne sont pas définies - avec v2.6.9

Créé le 14 mars 2019  ·  12Commentaires  ·  Source: vuejs/vue

Version

2.6.8

Lien de reproduction

https://jsfiddle.net/chrisvfritz/50wL7mdz/

Étapes à suivre pour reproduire

Il est lancé à partir du fichier vue / dist / vue.js de la dernière version que j'essaye actuellement de l'isoler, mais il semble lié au nouveau code ajouté récemment. Ajoutera plus d'étapes dès que possible si vous ne l'observez toujours pas.
1) répliqué avec ce dépôt - https://github.com/vuejs/vue-test-utils-mocha-webpack-example
2) le cloner
3) npm i
4) test npm - pas d'erreur
4) Vue de mise à jour npm
5) test npm - ReferenceError: les performances ne sont pas définies

Salutations,
Plamen

Qu'attend-on?

aucune erreur observée

Que se passe-t-il réellement?

une erreur est observée

bug has PR has workaround improvement

Commentaire le plus utile

Il semble que dans l'environnement jsdom:

> window.performance
Performance {}
> performance
ReferenceError: performance is not defined

Nous devons donc utiliser window.performace au lieu d'appeler performance directement pour que le code fonctionne correctement dans jsdom.

Tous les 12 commentaires

Veuillez fournir une repro lorsque vous signalez des bogues

Salut @posva ,
Le problème n'est pas répliqué avec un éditeur en ligne, mais j'ai fourni des étapes avec un projet de github dans la section Étapes à suivre pour reproduire.
Salutations,
Plamen

L'élément auquel vous avez lié est un exemple archivé et obsolète. Une repro n'a pas besoin d'être jsfiddle, il peut s'agir d'un fichier HTML (ou simplement du contenu de celui-ci). Il ne devrait pas non plus inclure d'autres dépendances comme mocha ou vue-test-utils (cela pourrait être un problème sur ce paquet). À votre santé.

Merci d'avoir répondu!
Hm - je vais essayer une autre approche - les «performances» qui se trouvent à cette ligne ne sont déclarées nulle part dans le fichier. Nous avons une window.performance et une config.performance, mais je ne vois aucune «performance» globale. Il est venu avec la dernière version car ici n'est pas présent.

Une fois que vous exécutez une analyse statique sur le fichier et qu'il jette.

Salutations,
Plamen

Obtenir également cela. J'ai reçu un avertissement de mon CI après la mise à niveau de Vue vers la version 2.6.9 (j'utilise Renovate pour garder deps à jour).

Il semble que dans l'environnement jsdom:

> window.performance
Performance {}
> performance
ReferenceError: performance is not defined

Nous devons donc utiliser window.performace au lieu d'appeler performance directement pour que le code fonctionne correctement dans jsdom.

D'accord, je pense que j'ai ouvert le menu avant d'ajouter l'amélioration de l'étiquette et cliqué à l'extérieur après avoir ajouté l'étiquette a PR, donc il l'a supprimée. Cas de bord drôle

Il convient de noter que bien que JSDOM ait un support performance via process.hrtime , je ne pense pas que nous puissions garantir le hack actuel avec performance fonctionnera toujours comme prévu dans l'environnement JSDOM ( c'est différent de l'implémentation des navigateurs après tout).

@posva 😂

Jusqu'à ce que cela soit publié, une solution de contournement consiste à ajouter les lignes suivantes après l'enregistrement JSDOM:

// eslint-disable-next-line no-undef
global.performance = window.performance;

Jusqu'à ce que cela soit publié, une solution de contournement consiste à ajouter les lignes suivantes après l'enregistrement JSDOM:

// eslint-disable-next-line no-undef
global.performance = window.performance;

Désolé d'être stupide mais où dois-je ajouter la ligne suivante puisque l'enregistrement JSDOM est extrait dans Vue CLI 3 et cli-plugin-unit-mocha (pas de setup.js)?

Merci pour l'aide...

// eslint-disable-next-line no-undef 
global.performance = window.performance;

Meme question. Où ajouter les lignes suivantes?

@theonlychase Je l'ai placé dans mon point d'entrée de test principal test/setup.js le même répertoire qui contient votre require('jsdom-global')

Référencé ci-dessous à --require flag.

"test": "mocha-webpack --webpack-config webpack/webpack.config.test.js --require test/setup.js reporter mocha-bamboo-reporter"
Cette page vous a été utile?
0 / 5 - 0 notes