неожиданный импорт токена без извлечения/обновления конфигурации

Есть ли простой способ настроить приложение Create React, чтобы оно использовало предварительно настроенный Jest для использования модулей ES6 без извлечения? Я импортирую сайты-фонды в проект. Когда я запускаю первый тест для компонента приложения, я получаю следующую ошибку:

FAIL  src/App/App.test.js 
Test suite failed to run

/node_modules/foundation-sites/dist/js/npm.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import $ from 'jquery';
                                                                                         ^^^^^^

SyntaxError: Unexpected token import

Я безуспешно пытался установить babel-jest и добавить файл .babelrc с предустановками: ["react", "es2015"]. Я не знал, добился ли кто-нибудь еще каких-либо успехов в шутливых тестах Create-React-App, если один из ваших node_modules использовал модули JS.


person David Krause    schedule 21.06.2018    source источник


Ответы (1)


На текущей версии CRA (1.5.2) тесты с импортом работают нестандартно. Вы внесли какие-либо изменения? Если да, может быть, вы можете поделиться кодом теста или сделать его легкое воспроизведение?

Я предлагаю убедиться, что у вас нет другой версии jest, установленной локально или глобально (насколько я знаю, CRA это не нравится).

person v1adko    schedule 21.06.2018
comment
Хорошо, я смог воспроизвести вашу проблему, и кажется, что в дистрибутивном коде базовых сайтов есть нетранспилированный код, и, поскольку CRA не касается node_modules, он выдает ошибку. Насколько я знаю, нет простого способа сделать это без извлечения. Вы можете попробовать возиться с react-app-rewired, но я бы не назвал это легким способом. Но, глядя на этот PR, проблема будет решена на стороне фонда в 6.5.* версии. - person v1adko; 21.06.2018
comment
Спасибо, что изучили это. Я сделал такой же вывод. Раньше моя команда просто катапультировалась. Я не вижу лучшего способа. После извлечения я могу настроить, как мне нужно. Мне не нравится катапультироваться, когда CRA говорит, что это должно быть последним средством, но вы должны делать то, что должны делать. Было бы неплохо, если бы у CRA был простой способ добиться этого, не дожидаясь, пока Node поддержит модули ES. - person David Krause; 22.06.2018