ОБНОВЛЕНИЕ: Оказывается, у репозитория devTool на github был еще лучший ответ:
const app = new Vue(vueConfig).$mount('#app');
window.__VUE_DEVTOOLS_GLOBAL_HOOK__.Vue = app.constructor;
См. Здесь: https://github.com/vuejs/vue-devtools
Оказывается, была шутка, которая вызвала проблему. Мои шутливые тесты не работали с моим обычным экземпляром vue, поэтому мне пришлось имитировать его с помощью createLocalVue
.
const localVue = createLocalVue();
localVue.use(VueRouter);
const router = new VueRouter();
Проблема заключалась в том, что некоторым тестам не нравилось то, что у меня было два vue экземпляры (один в main. js) с маршрутизатором.
Итак, я добавил logi c, чтобы добавить маршрутизатор только в том случае, если это не тест:
import Vue from 'vue';
import VueRouter from 'vue-router';
if (!process || process.env.NODE_ENV !== 'test') {
Vue.use(VueRouter);
}
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes,
});
const vueConfig = {
render: (h) => h(App),
};
// excluding for jest tests
if (!process || process.env.NODE_ENV !== 'test') {
vueConfig.router = router;
}
new Vue(vueConfig).$mount('#app');
К сожалению, if вокруг Vue .use () - это то, что сломало его:
// removing this if() fixed it and the vue dev tools panel now shows up.
if (!process || process.env.NODE_ENV !== 'test') {
Vue.use(VueRouter);
}
Что-то в том, как инструменты разработчика нуждаются в установке маршрутизатора. Мне также интересно, используют ли они процесс с «тестом» или чем-то подобным. В любом случае, это решено для меня. Надеюсь, это поможет кому-то другому.