Vue: Laufzeitausnahme: Leistung ist nicht definiert - mit v2.6.9

Erstellt am 14. März 2019  ·  12Kommentare  ·  Quelle: vuejs/vue

Ausführung

2.6.8

Reproduktionslink

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

Schritte zum Reproduzieren

Es wird aus der Datei vue / dist / vue.js der neuesten Version geworfen, die ich derzeit zu isolieren versuche, aber es scheint mit dem kürzlich hinzugefügten neuen Code verbunden zu sein. Fügt so schnell wie möglich weitere Schritte hinzu, wenn Sie dies immer noch nicht beachten.
1) mit diesem Repo repliziert - https://github.com/vuejs/vue-test-utils-mocha-webpack-example
2) Klonen Sie es
3) npm i
4) npm Test - kein Fehler
4) npm update vue
5) npm test - ReferenceError: Leistung ist nicht definiert

Schöne Grüße,
Plamen

Was wird erwartet?

Kein Fehler beobachtet

Was passiert eigentlich?

Ein Fehler wird beobachtet

bug has PR has workaround improvement

Hilfreichster Kommentar

Es scheint, dass in jsdom Umgebung:

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

Wir müssen also window.performace anstatt performance direkt aufzurufen, damit der Code in jsdom korrekt ausgeführt wird.

Alle 12 Kommentare

Bitte geben Sie einen Repro an, wenn Sie Fehler melden

Hallo @posva ,
Das Problem wurde noch nicht mit einem Online-Editor repliziert. Ich habe Schritte mit einem Projekt von github im Abschnitt Schritte zur Reproduktion bereitgestellt.
Schöne Grüße,
Plamen

Das, mit dem Sie verlinkt haben, ist ein archiviertes und veraltetes Beispiel. Ein Repro muss nicht jsfiddle sein, es kann eine HTML-Datei sein (oder nur der Inhalt davon). Es sollte auch keine anderen Abhängigkeiten wie Mokka oder Vue-Test-Utils enthalten (dies könnte ein Problem bei diesem Paket sein). Prost.

Danke fürs Zurückschreiben!
Hm - ich werde einen anderen Ansatz versuchen - 'Leistung', die sich in dieser Zeile befindet, wird an keiner Stelle in der Datei deklariert. Wir haben eine window.performance und eine config.performance, aber ich sehe keine globale 'Performance'. Es kam mit der neuesten Version, da hier nicht vorhanden ist.

Sobald Sie eine statische Analyse der Datei ausführen, wird diese ausgelöst.

Schöne Grüße,
Plamen

Auch das bekommen. Ich habe eine Warnung von meinem CI erhalten, nachdem Vue auf 2.6.9 aktualisiert wurde (ich verwende Renovate, um die Deps auf dem neuesten Stand zu halten).

Es scheint, dass in jsdom Umgebung:

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

Wir müssen also window.performace anstatt performance direkt aufzurufen, damit der Code in jsdom korrekt ausgeführt wird.

Okay, ich glaube, ich habe das Menü geöffnet, bevor Sie die Etikettenverbesserung hinzugefügt haben, und nach dem Hinzufügen des PR-Etiketts nach außen geklickt, sodass es entfernt wurde. Lustiger Randfall

Es sollte beachtet werden, dass JSDOM zwar eine Unterstützung von performance über process.hrtime , ich jedoch nicht garantieren kann, dass der aktuelle Hack mit performance in der JSDOM-Umgebung immer wie erwartet funktioniert ( es unterscheidet sich schließlich von der Implementierung des Browsers).

@posva 😂

Bis dies veröffentlicht ist, besteht eine Problemumgehung darin, nach der JSDOM-Registrierung die folgenden Zeilen hinzuzufügen:

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

Bis dies veröffentlicht ist, besteht eine Problemumgehung darin, nach der JSDOM-Registrierung die folgenden Zeilen hinzuzufügen:

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

Tut mir leid, dass ich dumm bin, aber wo füge ich die folgende Zeile hinzu, da die JSDOM-Registrierung in Vue CLI 3 und cli-plugin-unit-mocha (keine setup.js) abstrahiert ist?

Danke für die Hilfe...

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

Selbe Frage. Wo füge ich die folgenden Zeilen hinzu?

@theonlychase Ich habe es in meinem Haupttest-Einstiegspunkt test/setup.js im selben Verzeichnis abgelegt, in dem sich auch Ihr require('jsdom-global')

Unten unter --require Flagge angegeben.

"test": "mocha-webpack --webpack-config webpack/webpack.config.test.js --require test/setup.js reporter mocha-bamboo-reporter"
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen