为了账号安全,请及时绑定邮箱和手机立即绑定

React 应用程序:Jest 遇到意外令牌

React 应用程序:Jest 遇到意外令牌

DIEA 2021-12-23 19:32:50
我尝试测试我通过create-react-app. 只有一个自动生成的测试文件:import React from 'react';import ReactDOM from 'react-dom';import App from './App';it('renders without crashing', () => {  const div = document.createElement('div');  ReactDOM.render(<App />, div);  ReactDOM.unmountComponentAtNode(div);});这是我的package.json(我也有 package-lock.json(约 15k 行)):   {      "name": "project",      "version": "0.1.0",      "private": true,      "dependencies": {        "avro-js": "^1.9.1",        "axios": "^0.19.0",        "bootstrap": "^4.3.1",        "jquery": "^3.4.1",        "prop-types": "^15.7.2",        "react": "^16.10.2",        "react-dom": "^16.10.2",        "react-redux": "^7.1.1",        "react-scripts": "3.2.0",        "react-syntax-highlighter": "^11.0.2",        "reactstrap": "^8.0.1",        "redux": "^4.0.4",        "redux-thunk": "^2.3.0"      },      "scripts": {        "start": "react-scripts start",        "build": "react-scripts build",        "test": "react-scripts test",        "eject": "react-scripts eject"      },      "eslintConfig": {        "extends": "react-app"      },      "browserslist": {        "production": [          ">0.2%",          "not dead",          "not op_mini all"        ],        "development": [          "last 1 chrome version",          "last 1 firefox version",          "last 1 safari version"        ]      }    }当我尝试使用测试脚本对其进行测试时,出现此错误:Jest 遇到意外令牌This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".细节:({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){export{ 默认为 a11yDark } 来自 './a11y-dark';另外,我没有.babelrc文件。我试图添加.babelrc但它没有帮助(或者我做错了)
查看完整描述

2 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

如果您在尝试为组件导入 javascript 样式时遇到此错误,请确保您的目标是

react-syntax-highlighter/dist/cjs/...

而不是

react-syntax-highlighter/dist/esm/...

Jest 应该能够解析它。


查看完整回答
反对 回复 2021-12-23
?
白衣染霜花

TA贡献1796条经验 获得超10个赞

所以,最后我解决了这个问题。我的最终配置是:


babel.config.js :


module.exports = {

    presets: ['@babel/preset-env', '@babel/preset-react'],

};

包.json :


{

  "name": "project",

  "version": "1.0",

  "private": true,

  "dependencies": {

    "avro-js": "^1.9.1",

    "axios": "^0.19.0",

    "bootstrap": "^4.3.1",

    "jquery": "^3.4.1",

    "prop-types": "^15.7.2",

    "react": "^16.10.2",

    "react-dom": "^16.10.2",

    "react-redux": "^7.1.1",

    "react-scripts": "3.2.0",

    "react-syntax-highlighter": "^11.0.2",

    "reactstrap": "^8.0.1",

    "redux": "^4.0.4",

    "redux-thunk": "^2.3.0"

  },

  "jest": {

    "transformIgnorePatterns": [

      "/node_modules/(?!(react-syntax-highlighter)/)"

    ]

  },

  "devDependencies": {

    "@babel/cli": "^7.0.0",

    "@babel/core": "^7.0.0",

    "@babel/preset-env": "^7.0.0",

    "@babel/preset-react": "^7.0.0",

    "babel-core": "^7.0.0-bridge.0",

    "babel-eslint": "^10.0.3",

    "babel-jest": "^24.9.0",

    "babel-loader": "^8.0.0",

    "enzyme": "^3.10.0",

    "enzyme-adapter-react-16": "^1.15.1",

    "eslint": "^6.7.1",

    "jest": "^24.9.0",

    "jest-cli": "^24.9.0",

    "react-test-renderer": "^16.12.0",

    "redux-mock-store": "^1.5.3"

  },

  "scripts": {

    "start": "react-scripts start",

    "build": "react-scripts build",

    "test": "react-scripts test",

    "eject": "react-scripts eject"

  },

  "eslintConfig": {

    "extends": "react-app"

  },

  "browserslist": {

    "production": [

      ">0.2%",

      "not dead",

      "not op_mini all"

    ],

    "development": [

      "last 1 chrome version",

      "last 1 firefox version",

      "last 1 safari version"

    ]

  }

}

我不确定这是最好的解决方案,但至少它有效


查看完整回答
反对 回复 2021-12-23
  • 2 回答
  • 0 关注
  • 348 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信