Reactjs 如何用jest和babel解决进口问题

Reactjs 如何用jest和babel解决进口问题,reactjs,testing,jestjs,Reactjs,Testing,Jestjs,我正在尝试用Ezyme、jest、create react app、babel和webpack进行一个简单的测试,我可以让Ezyme文档上的示例测试正常工作,但当我尝试使用我自己的组件时,jest通过node_模块中某个文件的导入时,我就出现了一个错误 我得到: ● Test suite failed to run /($PROJECT-PATH)/node_modules/react-feather/dist/icons/message-square.js:7 impor

我正在尝试用Ezyme、jest、create react app、babel和webpack进行一个简单的测试,我可以让Ezyme文档上的示例测试正常工作,但当我尝试使用我自己的组件时,jest通过node_模块中某个文件的导入时,我就出现了一个错误

我得到:

  ● Test suite failed to run

    /($PROJECT-PATH)/node_modules/react-feather/dist/icons/message-square.js:7
    import React, { forwardRef } from 'react';
    ^^^^^^

    SyntaxError: Cannot use import statement outside a module

      12 | } from 'react-feather';
      13 | import Edit3 from 'react-feather/dist/icons/edit-3';
    > 14 | import MDI from '@mdi/react';
         |                                             ^
      15 | import {
      16 |   mdiCheckDecagram,
      17 |   mdiClock,

      at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:537:17)
      at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:579:25)
      at Object.<anonymous> (src/components/icons/index.js:14:45)
  "jest": {
    "setupFilesAfterEnv": [
      "<rootDir>src/setupTests.js"
    ],
    "rootDir": "./",
    "testRegex": "__tests__/.+\\.test\\.js",
    "transform": {
      "^.+\\.js?$": "babel-jest"
    },
    "moduleFileExtensions": ["js"],
    "moduleDirectories": [
      "node_modules",
      "lib"
    ]
const config = {
  presets: ['@babel/preset-env', '@babel/preset-react'],
  plugins: [
    [
      '@babel/plugin-transform-runtime',
      {
        regenerator: true,
      },
    ],
    '@babel/plugin-syntax-dynamic-import',
    [
      'import',
      {
        libraryName: 'react-feather',
        libraryDirectory: 'dist/icons',
      },
      'react-feather',
    ],
  ],
};

module.exports = config;