找不到模块'@ babel / preset-register'

时间:2019-11-15 10:23:17

标签: reactjs jestjs babeljs

我是React和Jest的新手,在我的第一个实验中,我在运行jest --watchAll时遇到以下错误:

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

    Cannot find module '@babel/preset-register' from '/Users/joaomatos/projects/dummy'
    - If you want to resolve "@babel/register", use "module:@babel/register"

      at Function.module.exports [as sync] (node_modules/resolve/lib/sync.js:74:15)
      at resolveStandardizedName (node_modules/@babel/core/lib/config/files/plugins.js:101:31)
      at resolvePreset (node_modules/@babel/core/lib/config/files/plugins.js:58:10)
      at loadPreset (node_modules/@babel/core/lib/config/files/plugins.js:77:20)
      at createDescriptor (node_modules/@babel/core/lib/config/config-descriptors.js:154:9)
      at node_modules/@babel/core/lib/config/config-descriptors.js:109:50
          at Array.map (<anonymous>)
      at createDescriptors (node_modules/@babel/core/lib/config/config-descriptors.js:109:29)
      at createPresetDescriptors (node_modules/@babel/core/lib/config/config-descriptors.js:101:10)
      at presets (node_modules/@babel/core/lib/config/config-descriptors.js:47:19)

我安装了几个babel软件包,即babel register,但找不到与@babel/preset-register相关的其他内容。我的package.json:

{
  "name": "dummy",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@babel/preset-env": "^7.7.1",
    "acorn": "^7.1.0",
    "babel-plugin-transform-export-extensions": "^6.22.0",
    "babel-preset-env": "^1.7.0",
    "history": "^4.10.1",
    "npm-preset": "^1.5.0",
    "parcel": "^1.12.4",
    "react": "^16.11.0",
    "react-app-polyfill": "^1.0.4",
    "react-dev-utils": "^9.1.0",
    "react-dom": "^16.6.3",
    "react-dropzone": "^10.1.10",
    "react-file-drop": "^0.2.8",
    "react-flip-move": "^3.0.4",
    "react-redux": "^6.0.0",
    "react-router-dom": "^4.3.1",
    "react-scripts": "3.2.0",
    "react-switch": "^5.0.1",
    "react-test-renderer": "^16.11.0",
    "redux": "^4.0.4",
    "typescript": "^3.7.2"
  },
  "scripts": {
    "dev": "parcel src/index.html",
    "build": "parcel build src/index.html",
    "start": "npm run build && live-server dist",
    "test": "jest --watchAll"
  },
  "devDependencies": {
    "@babel/core": "^7.7.2",
    "@babel/plugin-proposal-class-properties": "^7.7.0",
    "@babel/preset-react": "^7.7.0",
    "@babel/preset-stage-2": "^7.0.0",
    "@babel/register": "^7.7.0",
    "babel-loader": "^8.0.6",
    "babel-plugin-syntax-dynamic-import": "^6.18.0",
    "babel-plugin-transform-class-properties": "^6.24.1",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1"
  }
}

和.babel.rc:

{
  "plugins": [
    "@babel/plugin-proposal-class-properties"
  ],
  "env": {
    "test": {
      "presets": [
        "env",
        "@babel/preset-env",
        "@babel/preset-react",
        "@babel/preset-stage-2",
        "@babel/register",
        "stage-2",
        "react"
      ],
      "plugins": [
        "transform-export-extensions",
        "transform-class-properties"
      ],
      "only": [
        "./**/*.js",
        "node_modules/jest-runtime"
      ]
    }
  }

我的测试:

import React from 'react';
import Enzyme, {shallow} from 'enzyme';
import EnzymeAdapter from 'enzyme-adapter-react-16';
import App from './App';

Enzyme.configure({adapter: new EnzymeAdapter()});

test(
    'renders without crashing',
    () => {
        const wrapper = shallow(<App />);
        expect(wrapper).toBeTruthy();
    }
);

有人知道我为什么收到此错误吗?

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

Babel-register不是预设,因此您面临的错误消息。您确定启动项目需要它吗?尝试将其从presets的{​​{1}}数组中删除

相关问题