Vue: Exceção de tempo de execução: o desempenho não está definido - com v2.6.9

Criado em 14 mar. 2019  ·  12Comentários  ·  Fonte: vuejs/vue

Versão

2.6.8

Link de reprodução

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

Passos para reproduzir

Ele está jogando do arquivo vue / dist / vue.js da versão mais recente que estou tentando isolá-lo, mas parece estar conectado com o novo código adicionado recentemente. Adicionará mais etapas o mais rápido possível se você ainda não observar.
1) replicado com este repo - https://github.com/vuejs/vue-test-utils-mocha-webpack-example
2) clonar
3) npm i
4) teste npm - sem erro
4) vue de atualização de npm
5) teste npm - ReferenceError: desempenho não definido

Saudações,
Plamen

O que é esperado?

nenhum erro observado

O que realmente está acontecendo?

um erro foi observado

bug has PR has workaround improvement

Comentários muito úteis

Parece que no ambiente jsdom:

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

Portanto, temos que usar window.performace vez de chamar performance diretamente para fazer o código funcionar corretamente no jsdom.

Todos 12 comentários

Forneça uma reprodução ao relatar bugs

Olá @posva ,
O problema não é replicado com um editor online, mas forneci etapas com um projeto do github na seção Etapas para reproduzir.
Saudações,
Plamen

O que você vinculou é um exemplo arquivado e obsoleto. Uma reprodução não precisa ser jsfiddle, pode ser um arquivo HTML (ou apenas o conteúdo dele). Ele também não deve incluir outras dependências como mocha ou vue-test-utils (pode ser um problema nesse pacote). Felicidades.

Obrigado por responder!
Hm - vou tentar outra abordagem - 'desempenho' que está nesta linha não é declarado em qualquer lugar do arquivo. Temos um window.performance e config.performance, mas não vejo nenhum 'desempenho' global. Ele veio com a versão mais recente porque aqui não está presente.

Depois de executar uma análise estática no arquivo e ele joga.

Saudações,
Plamen

Também conseguindo isso. Recebi um aviso do meu CI depois que o Vue foi atualizado para 2.6.9 (eu uso Renovate para manter os departamentos atualizados).

Parece que no ambiente jsdom:

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

Portanto, temos que usar window.performace vez de chamar performance diretamente para fazer o código funcionar corretamente no jsdom.

Ok, acho que abri o menu antes de você adicionar a melhoria de rótulo e cliquei fora depois de adicionar o rótulo tem PR, então ele o removeu. Caso engraçado

Deve-se observar que embora JSDOM tenha um suporte de performance via process.hrtime , não acho que podemos garantir o hack atual com performance sempre funcionará como esperado no ambiente JSDOM ( afinal, é diferente da implementação dos navegadores).

@posva 😂

Até que isso seja lançado, uma solução alternativa é adicionar as seguintes linhas após o registro JSDOM:

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

Até que isso seja lançado, uma solução alternativa é adicionar as seguintes linhas após o registro JSDOM:

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

Desculpe por ser estúpido, mas onde adiciono a seguinte linha, já que o registro JSDOM é abstraído no Vue CLI 3 e cli-plugin-unit-mocha (sem setup.js)?

Obrigado pela ajuda...

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

Mesma questão. Onde adiciono as seguintes linhas?

@theonlychase Coloquei -o em meu ponto de entrada de teste principal test/setup.js no mesmo diretório que contém seu require('jsdom-global')

Referenciado abaixo na bandeira --require .

"test": "mocha-webpack --webpack-config webpack/webpack.config.test.js --require test/setup.js reporter mocha-bamboo-reporter"
Esta página foi útil?
0 / 5 - 0 avaliações