Vue: Исключение во время выполнения: производительность не определена - с v2.6.9

Созданный на 14 мар. 2019  ·  12Комментарии  ·  Источник: vuejs/vue

Версия

2.6.8

Ссылка для воспроизведения

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

Действия по воспроизведению

Он выбрасывается из файла vue / dist / vue.js последней версии, которую я сейчас пытаюсь изолировать, но похоже, что это связано с новым кодом, добавленным недавно. Добавлю больше шагов как можно скорее, если вы все еще не наблюдаете этого.
1) реплицируется с этим репо - https://github.com/vuejs/vue-test-utils-mocha-webpack-example
2) клонировать
3) нпм я
4) тест npm - без ошибок
4) обновление npm vue
5) тест npm - ReferenceError: производительность не определена

Приветствия,
Пламен

Что ожидается?

ошибок не наблюдается

Что на самом деле происходит?

наблюдается ошибка

bug has PR has workaround improvement

Самый полезный комментарий

Похоже, что в среде jsdom:

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

Поэтому мы должны использовать window.performace вместо прямого вызова performance чтобы код работал правильно в jsdom.

Все 12 Комментарий

Пожалуйста, предоставьте репродукцию при сообщении об ошибках

Привет @posva!
Проблема не воспроизводится в онлайн-редакторе, но я предоставил шаги с проектом из github в разделе «Шаги по воспроизведению».
Приветствия,
Пламен

То, на что вы ссылаетесь, является заархивированным и устаревшим примером. Репро не обязательно должно быть jsfiddle, это может быть файл HTML (или просто его содержимое). Он также не должен включать другие зависимости, такие как mocha или vue-test-utils (это может быть проблемой для этого пакета). Ура.

Спасибо за ответ!
Хм - я попробую другой подход - «производительность», которая находится в этой строке , нигде в файле не объявлена. У нас есть window.performance и config.performance, но я не вижу никакой глобальной «производительности». Он пришел с последним выпуском, потому что здесь его нет.

Как только вы запускаете статический анализ файла, он выдает.

Приветствия,
Пламен

Также получаю это. Получил предупреждение от моего CI после того, как Vue обновился до 2.6.9 (я использую Renovate, чтобы поддерживать deps в актуальном состоянии).

Похоже, что в среде jsdom:

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

Поэтому мы должны использовать window.performace вместо прямого вызова performance чтобы код работал правильно в jsdom.

Хорошо, я думаю, что я открыл меню до того, как вы добавили улучшение ярлыка, и щелкнул снаружи после того, как вы добавили ярлык имеет PR, поэтому он удалил его. Забавный край

Следует отметить, что хотя JSDOM имеет поддержку performance через process.hrtime , я не думаю, что мы можем гарантировать, что текущий взлом с performance всегда будет работать должным образом в среде JSDOM ( в конце концов, это отличается от реализации в браузерах).

@posva 😂

Пока это не будет выпущено, обходной путь заключается в добавлении следующих строк после регистрации JSDOM:

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

Пока это не будет выпущено, обходной путь заключается в добавлении следующих строк после регистрации JSDOM:

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

Извините за глупость, но где мне добавить следующую строку, поскольку регистрация JSDOM абстрагирована в Vue CLI 3 и cli-plugin-unit-mocha (без setup.js)?

Спасибо за помощь...

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

Тот же вопрос. Куда добавить следующие строки?

@theonlychase Я поместил его в свою основную точку входа в тест test/setup.js это тот же каталог, который содержит ваш require('jsdom-global')

Ссылка ниже на --require flag.

"test": "mocha-webpack --webpack-config webpack/webpack.config.test.js --require test/setup.js reporter mocha-bamboo-reporter"
Была ли эта страница полезной?
0 / 5 - 0 рейтинги