Ошибка vue-jest: "SyntaxError: неожиданный токен <", вызванный `импортом PictureInput из 'vue-picture-input'` - PullRequest
0 голосов
/ 18 декабря 2018

Я новичок в Джесте и vue-jest.Просто пытаюсь заставить работать базовые тесты.

В моем файле bootstrap.js (в идеале этот файл будет загружен для всех тестов), я пытаюсь зарегистрировать сторонний компонент vue-picture-input:

import PictureInput from 'vue-picture-input';
Vue.component('picture-input', PictureInput);

(Это часть стандартного файла (bootstrap.js), который я использую для всего своего проекта.) Но Jest выдает мне следующую ошибку:

Details:

/home/vagrant/Code/Patrol/node_modules/vue-picture-input/PictureInput.vue:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){<template>
                                                                                         ^

SyntaxError: Unexpected token <

  85 | // ...
  86 | 
> 87 | import PictureInput from 'vue-picture-input';
     | ^
  88 | Vue.component('picture-input', PictureInput);

Я посмотрелна подобные вопросы о переполнении стека для этой ошибки, но я не могу понять, что происходит или что мне нужно изменить.Похоже, этот ответ решает аналогичную проблему, но я не знаю, как адаптировать решение для этой конкретной проблемы (или, если честно, даже если оно близко).

В настоящее времяраздел «шутка» моего package.json файла гласит:

"jest": {
  "moduleFileExtensions": [
    "js",
    "json",
    "vue"
  ],
  "moduleNameMapper": {
    "\\.(css|scss|sass|less)$": "<rootDir>/tests/js/config/cssLoader.js"
  },
  "transform": {
    ".*\\.(vue)$": "vue-jest",
    "^.+\\.js$": "<rootDir>/node_modules/babel-jest"
  }
}

Не уверен, куда идти отсюда ...

1 Ответ

0 голосов
/ 18 декабря 2018

Обновление: найдено решение на Github .

Решением было добавить следующий фрагмент к package.json в разделе "jest":

"transformIgnorePatterns": [
  "node_modules/(?!vue-picture-input)"
]

Теперь все отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...