Jest Babel не работает при подаче макета: Jest обнаружил неожиданный токен - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть такое 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 экспорт

...