неожиданный токен при импорте css - PullRequest
0 голосов
/ 11 февраля 2019

Я получил ошибку SyntaxError: Unexpected token .

в моем коде

import 'react-dates/lib/css/_datepicker.css'
import 'semantic-ui-css/semantic.min.css'

это не в моем spec.js, а в моем коде реализации, какая-либо подсказка, почему?У меня нет проблем с запуском моего приложения, но возникает ошибка при попытке запустить тест.

1 Ответ

0 голосов
/ 12 февраля 2019

Проблема в том, что Jest выполняет импорт этих CSS и пытается проанализировать их, как если бы они были JavaScript.

«Неожиданный токен».сообщение, вероятно, приходит, потому что первая строка файла, который он задыхается, является объявлением класса CSS, то есть .datepicker: { ... }.

В любом случае, как указано в этот ответ , способ получитьвокруг этого создается файл, содержащий модуль, который экспортирует пустой объект.Я назвал мой styleMock.js.

module.exports = {};

Затем вам нужно создать файл jest.config.js в корне вашего проекта и добавить:

module.exports = {
  moduleNameMapper: {
    '\\.(css|less)$': '<rootDir>/test/jest/__mocks__/styleMock.js',
  }
};

Параметр moduleNameMapper сообщает Jestкак интерпретировать файлы с разными расширениями.В этом случае нам просто нужно указать на пустой файл, который мы только что создали.Очевидно, соответственно измените путь к файлу.

И обратите внимание, что вы можете расширить приведенное выше регулярное выражение для любого окончания файла, которое вам нужно.Мой выглядит так:

moduleNameMapper: {
  '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
    '<rootDir>/test/jest/__mocks__/fileMock.js',
  '\\.(css|less)$': '<rootDir>/test/jest/__mocks__/styleMock.js',
},

, где fileMock.js идентичен styleMock.js

В качестве альтернативы, вы можете использовать такой модуль, как jest-transform-stub ,который делает то же самое для вас.

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