Vue: Excepción de tiempo de ejecución: el rendimiento no está definido, con v2.6.9

Creado en 14 mar. 2019  ·  12Comentarios  ·  Fuente: vuejs/vue

Versión

2.6.8

Enlace de reproducción

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

pasos para reproducir

Se lanza desde el archivo vue / dist / vue.js de la última versión. Actualmente estoy tratando de aislarlo, pero parece estar conectado con el nuevo código agregado recientemente. Agregará más pasos lo antes posible si aún no lo observa.
1) replicado con este repositorio: https://github.com/vuejs/vue-test-utils-mocha-webpack-example
2) clonarlo
3) npm i
4) prueba npm - sin error
4) vue de actualización de npm
5) prueba npm - ReferenceError: el rendimiento no está definido

Saludos,
Plamen

¿Lo que es esperado?

ningún error observado

¿Qué está pasando realmente?

se observa un error

bug has PR has workaround improvement

Comentario más útil

Parece que en el entorno jsdom:

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

Entonces tenemos que usar window.performace lugar de llamar a performance directamente para que el código se ejecute correctamente en jsdom.

Todos 12 comentarios

Proporcione una reproducción al informar errores

Hola @posva ,
El problema no se replica con un editor en línea; sin embargo, he proporcionado pasos con un proyecto de github en la sección Pasos para reproducir.
Saludos,
Plamen

Lo que vinculó es un ejemplo archivado y obsoleto. Una reproducción no tiene que ser jsfiddle, puede ser un archivo HTML (o solo su contenido). Tampoco debería incluir otras dependencias como mocha o vue-test-utils (podría ser un problema en ese paquete). Salud.

¡Gracias por responderme!
Hm, intentaré otro enfoque: el 'rendimiento' que está en esta línea no se declara en ninguna parte del archivo. Tenemos un window.performance y config.performance pero no veo ningún 'rendimiento' global. Vino con la última versión porque aquí no está presente.

Una vez que ejecuta un análisis estático en el archivo y lanza.

Saludos,
Plamen

También obteniendo esto. Recibí una advertencia de mi CI después de que Vue se actualizara a 2.6.9 (uso Renovate para mantener los departamentos actualizados).

Parece que en el entorno jsdom:

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

Entonces tenemos que usar window.performace lugar de llamar a performance directamente para que el código se ejecute correctamente en jsdom.

De acuerdo, creo que abrí el menú antes de que agregaras la mejora de la etiqueta e hice clic afuera después de agregar la etiqueta tiene PR, por lo que la eliminó. Estuche de borde divertido

Cabe señalar que aunque JSDOM tiene un soporte de performance a través de process.hrtime , no creo que podamos garantizar que el hack actual con performance siempre funcionará como se espera en el entorno JSDOM ( es diferente de la implementación de los navegadores después de todo).

@posva 😂

Hasta que se publique, una solución alternativa es agregar las siguientes líneas después del registro JSDOM:

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

Hasta que se publique, una solución alternativa es agregar las siguientes líneas después del registro JSDOM:

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

Perdón por ser estúpido, pero ¿dónde agrego la siguiente línea ya que el registro JSDOM se abstrae en Vue CLI 3 y cli-plugin-unit-mocha (sin setup.js)?

Gracias por la ayuda...

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

La misma pregunta. ¿Dónde agrego las siguientes líneas?

@theonlychase Lo coloqué en mi punto de entrada de prueba principal test/setup.js es el mismo directorio que contiene su require('jsdom-global')

Se hace referencia a continuación en la bandera --require .

"test": "mocha-webpack --webpack-config webpack/webpack.config.test.js --require test/setup.js reporter mocha-bamboo-reporter"
¿Fue útil esta página
0 / 5 - 0 calificaciones