Неожиданный экспорт токена Babel7 Jest

У меня проблемы с запуском шутливых тестов в моем проекте с Babel7. Тесты, используемые для идеальной транспиляции с помощью babel6. Он также отлично компилируется с помощью веб-пакета с Babel7, но не может запускать тесты с помощью jest из-за ошибки транспиляции. Что я делаю не так?

react/node_modules/generic-redux-root/index.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){export * from './source/CreateReduxRoot';
                                                                                         ^^^^^^

SyntaxError: Unexpected token export

мой шуточный конфиг

{
"unmockedModulePathPatterns": [
  "<rootDir>/node_modules/react",
  "<rootDir>/node_modules/react-dom",
  "<rootDir>/node_modules/react-addons-test-utils",
  "<rootDir>/node_modules/fbjs",
  "enzyme"
],
"roots": [
  "<rootDir>/__tests__"
],
"transformIgnorePatterns": [
  "node_modules/(^generic-)/i", //a module matching this is throwing an error
  "node_modules/react-infinite-scroller"
],
"setupFiles": [
  "./jestsetup.js"
],
"snapshotSerializers": [
  "enzyme-to-json/serializer"
],
"testResultsProcessor": "./jestTrxProcessor",
"verbose": true

}

Мой .babelrc

{
"presets": [
    [
        "@babel/preset-env",
        {
            "targets": {
                "ie": 11
            },
            "useBuiltIns": "usage"
        }
    ],
    "@babel/preset-react"
],
"plugins": [
    "@babel/plugin-transform-runtime",
    "@babel/plugin-syntax-dynamic-import",
    "@babel/plugin-syntax-import-meta",
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-proposal-json-strings",
    [
        "@babel/plugin-proposal-decorators",
        {
            "legacy": true
        }
    ],
    "@babel/plugin-proposal-function-sent",
    "@babel/plugin-proposal-export-namespace-from",
    "@babel/plugin-proposal-numeric-separator",
    "@babel/plugin-proposal-throw-expressions",
    "@babel/plugin-proposal-object-rest-spread",
    "@babel/plugin-transform-object-assign"
]

}

Что я делаю не так?


person Salman Hasrat Khan    schedule 18.09.2018    source источник
comment
Возможно, полезная статья о Babel 7 и Jest для всех, кто спотыкается на этом вопросе. .   -  person Robin Wieruch    schedule 27.10.2018


Ответы (1)


Это происходит потому, что Babel 7 больше не загружает ваш .babelrc автоматически. Существует новая концепция root config, которая должна находиться в корне вашего проекта, а файл должен называться babel.config.js и экспортировать объект.

Итак, чтобы дать вам несколько шагов, чтобы следовать:

  1. переименуйте .babelrc в babel.config.js и убедитесь, что вы используете module.exports = {...}
  2. запустить jest --clearCache, чтобы очистить внутренний кеш Jest (что стоило мне нескольких часов биться головой о стену)
  3. На этом этапе ваша конфигурация babel должна быть правильно загружена Jest.
person Pavel Denisjuk    schedule 18.09.2018
comment
Спасибо за вашу помощь! Кажется, это решило эту ошибку, но теперь я столкнулся с другой странной ошибкой. Я создал вопрос для этого stackoverflow.com/q/52400840/1032179 - person Salman Hasrat Khan; 19.09.2018
comment
Прохладный! :) Я несколько часов бился головой о стену, прежде чем нашел этот ответ :) - person kovpack; 10.12.2018
comment
также убедитесь, что у вас не установлен modules: false ;) - person Tom Sarduy; 16.04.2020
comment
Ух ты. modules: false полностью сделал это за нас. - person Frexuz; 21.04.2020