У меня есть такое mock
Variants.jsx
:
import * as React from 'react';
export default const Variants = () => <div>Variants</div>
В package.json
У меня есть:
...
"jest": {
"collectCoverageFrom": [
"src/**/*.{js,jsx,mjs}"
],
"setupFiles": [
"<rootDir>/config/polyfills.js"
],
"snapshotSerializers": [
"enzyme-to-json/serializer"
],
"testMatch": [
"<rootDir>/**/?*.(test).js?(x)"
],
"testEnvironment": "node",
"testURL": "http://localhost",
"transform": {
"^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
"^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
},
"transformIgnorePatterns": [
"<rootDir>[/\\\\]node_modules[/\\\\](?!(igv|gtex-d3)/).+\\.(js|jsx|ts|tsx)$"
],
"moduleNameMapper": {
"^react-native$": "react-native-web"
},
"moduleFileExtensions": [
"web.js",
"mjs",
"js",
"json",
"web.jsx",
"jsx",
"node"
]
},
...
transform
, кажется, определено нормально (я сделал не настраивать среду) и это обычно то, что необходимо сделать в соответствии с несколькими потоками, например:
Шут обнаружил неожиданный токен
Конечно, если я переключите мой mock
на старый стиль javascript
с ключевым словом function
он начинает работать, поэтому он babel
очевидно.
Как это исправить?
Обновление
Вот еще немного информации:
"devDependencies": {
"@babel/core": "^7.8.4",
"@babel/preset-env": "^7.8.4",
"@babel/preset-react": "^7.8.3",
"jest": "^23.6.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react-app": "^3.1.2",
...
"presets": [
"@babel/env",
"@babel/react",
"react",
[
"es2015",
{
"modules": false
}
]
]
Обновление
Я пытался начать все сначала, где у меня есть babel6
в package.json
и запустил следующие команды:
npx babel-upgrade --write --install
npm install --save-dev @babel/preset-react
npm install babel-polyfill
После чего я получил ошибку:
__ mocks __ / Variants.jsx: только выражения, функции или классы допускается как default
экспорт