2

将我的项目升级到 Babel 7 后,通过 Jest 运行测试会引发以下错误。测试在 Babel 6 中运行时没有任何问题,但在 Babel 7 中失败并出现以下错误

TypeError: wks is not a function

  at Object.<anonymous>.module.exports (node_modules/core-js/modules/_fix-re-wks.js:16:16)
  at Object.<anonymous> (node_modules/core-js/modules/es6.regexp.replace.js:4:25)
  at Object.<anonymous> (node_modules/core-js/modules/es6.regexp.split.js:3:1)
  at Object.<anonymous> (node_modules/core-js/modules/es6.symbol.js:7:1)
  at Object.<anonymous> (node_modules/core-js/modules/_is-object.js:5:1)
  at Object.<anonymous> (node_modules/core-js/modules/_inherit-if-required.js:3:16)
  at Object.<anonymous> (node_modules/core-js/modules/es6.regexp.constructor.js:5:25)
  at Object.<anonymous> (node_modules/core-js/modules/es6.regexp.match.js:3:1)
  at Object.<anonymous> (node_modules/core-js/modules/es6.function.name.js:3:1)
  at Object.<anonymous> (node_modules/core-js/modules/_wks.js:3:1)
  at Object.<anonymous> (node_modules/core-js/modules/_add-to-unscopables.js:4:19)
  at Object.<anonymous> (node_modules/core-js/modules/es6.array.iterator.js:3:24)
  at Object.<anonymous> (node_modules/core-js/modules/web.dom.iterable.js:3:18)
  at Object.<anonymous> (node_modules/regenerator-runtime/runtime.js:3:1)

笑话配置

{
"unmockedModulePathPatterns": [
  "<rootDir>/node_modules/react",
  "<rootDir>/node_modules/react-dom",
  "<rootDir>/node_modules/react-addons-test-utils",
  "<rootDir>/node_modules/fbjs",
  "enzyme"
],
"roots": [
  "<rootDir>/__tests__"
],
"transformIgnorePatterns": [
  "node_modules/(^generic-)/i", //a module matching this is throwing an error
  "node_modules/react-infinite-scroller"
],
"setupFiles": [
  "./jestsetup.js"
],
"snapshotSerializers": [
  "enzyme-to-json/serializer"
],
"testResultsProcessor": "./jestTrxProcessor",
"verbose": true
  }

文件babel.js.config

{
"presets": [
    [
        "@babel/preset-env",
        {
            "targets": {
                "ie": 11
            },
            "useBuiltIns": "usage"
        }
    ],
    "@babel/preset-react"
],
"plugins": [
    "@babel/plugin-transform-runtime",
    "@babel/plugin-syntax-dynamic-import",
    "@babel/plugin-syntax-import-meta",
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-proposal-json-strings",
    [
        "@babel/plugin-proposal-decorators",
        {
            "legacy": true
        }
    ],
    "@babel/plugin-proposal-function-sent",
    "@babel/plugin-proposal-export-namespace-from",
    "@babel/plugin-proposal-numeric-separator",
    "@babel/plugin-proposal-throw-expressions",
    "@babel/plugin-proposal-object-rest-spread",
    "@babel/plugin-transform-object-assign"
    ]
}

文件包.json

"devDependencies": {
    "@babel/cli": "^7.0.0",
    "@babel/core": "^7.0.1",
    "@babel/plugin-proposal-class-properties": "^7.0.0",
    "@babel/plugin-proposal-decorators": "^7.0.0",
    "@babel/plugin-proposal-export-namespace-from": "^7.0.0",
    "@babel/plugin-proposal-function-sent": "^7.0.0",
    "@babel/plugin-proposal-json-strings": "^7.0.0",
    "@babel/plugin-proposal-numeric-separator": "^7.0.0",
    "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
    "@babel/plugin-proposal-throw-expressions": "^7.0.0",
    "@babel/plugin-syntax-dynamic-import": "^7.0.0",
    "@babel/plugin-syntax-import-meta": "^7.0.0",
    "@babel/plugin-transform-object-assign": "^7.0.0",
    "@babel/preset-env": "^7.0.0",
    "@babel/preset-react": "^7.0.0",
    "babel-core": "7.0.0-bridge.0",
    "babel-loader": "^8.0.0",
    "body-parser": "^1.18.3",
    "create-if-not-exist": "^0.0.2",
    "enzyme": "^3.3.0",
    "enzyme-adapter-react-16": "^1.1.1",
    "enzyme-to-json": "^3.3.1",
    "eslint": "^4.13.1",
    "eslint-config-airbnb": "^16.1.0",
    "eslint-config-defaults": "^9.0.0",
    "eslint-config-rallycoding": "^3.2.0",
    "eslint-plugin-import": "^2.7.0",
    "eslint-plugin-jsx-a11y": "^6.0.2",
    "eslint-plugin-react": "^7.4.0",
    "exports-loader": "0.6.4",
    "express": "^4.16.3",
    "generic-redux-root": "^0.0.1",
    "imports-loader": "0.7.1",
    "jasmine": "^2.8.0",
    "jest": "^23.4.1",
    "jest-cli": "^23.4.1",
    "jest-trx-results-processor": "^0.0.7",
    "redux-mock-store": "^1.5.1",
    "string-replace-webpack-plugin": "^0.1.3",
    "webpack": "^4.5.0",
    "webpack-cli": "^2.0.12",
    "webpack-dev-server": "^3.1.1"
  },
  "dependencies": {
    "@babel/polyfill": "^7.0.0",
    "babel-jest": "^23.6.0",
    "babel-plugin-add-module-exports": "^0.2.1",
    "core-js": "^2.5.5",
    "draft-js": "^0.10.5",
    "es6-promise": "^3.3.1",
    "flux": "^3.1.3",
    "generic-api-fetch": "1.0.1",
    "generic-http": "^1.0.2",
    "generic-limited-textarea": "^1.1.0",
    "generic-select": "^1.0.3",
    "generic-throttled-select": "^1.0.3",
    "lodash": "4.17.4",
    "moment": "^2.22.2",
    "prop-types": "^15.6.2",
    "react": "16.2.0",
    "react-addons-update": "15.6.2",
    "react-datepicker": "^1.5.0",
    "react-dom": "16.2.0",
    "react-hot-loader": "3.1.3",
    "react-infinite-scroller": "^1.2.0",
    "react-redux": "5.0.6",
    "react-select": "1.1.0",
    "redux": "3.7.2",
    "redux-logger": "3.0.6",
    "redux-thunk": "2.2.0",
    "reselect": "3.0.1",
    "whatwg-fetch": "^2.0.4"
  }

我究竟做错了什么?

4

0 回答 0