标题几乎可以解释我所面临的问题。我正在尝试测试React具有某种状态的组件,并且试图为该组件提供存储以获取所需的组件。当我使用Jest运行组件的测试时,出现以下错误:
React
ReferenceError: regeneratorRuntime is not defined
我已经通过了一些读数确定,这是造成babel-polyfill或者regenerator- runtime没有被正确适用于玩笑。但是,我尝试安装这两个软件包并重新运行,但结果没有变化。阅读Jest Github问题页面(删除babel- polyfill的自动包含#2755)后,我发现babel- polyfillJest从版本19开始不自动包含它。我手动安装该软件包应该已解决了问题,但确实如此不。我包括了一些我认为相关的文件
babel-polyfill
regenerator- runtime
babel- polyfill
.babelrc:
.babelrc
{ "presets": ["es2015", "react", "stage-2"], "env": { "development": { "plugins": [ ["react-transform", { "transforms": [{ "transform": "react-transform-hmr", "imports": ["react"], "locals": ["module"] }] }] ] } } }
jest.config:
jest.config
{ "transform": { "^.+\\.(js|jsx)$": "<rootDir>/node_modules/webpack-babel-jest", ".*\\.(vue)$": "<rootDir>/node_modules/jest-vue-preprocessor", ".*": "babel-jest" }, "moduleNameMapper": { "\\.(jpg|jpeg|css|scss|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__tests__/__mocks__/fileMock.js", ".*\\.(vue)$": "vue/dist/vue.js" }, "testPathIgnorePatterns": ["type_parser.spec.js", "<rootDir>/__tests__/__mocks__/", "__tests__/unit/core/util/type_parser.js", "__tests__/GitlabLoader.test.js" ] }
package.json:
package.json
{ "name": "my_project", "version": "0.2.0", "description": "My Project", "scripts": { "clean:build": "node ./bin/clean.js createdir", "build:html": "node ./bin/buildHtml.js", "deployProduction": "node ./bin/deployProduction.js", "start": "webpack-dev-server --config ./config/webpack.config.dev.js --hot --inline --progress", "serve": "npm run deployProduction&& supervisor --watch ./production-copy src/js/server", "prebuild": "npm run clean:build", "postbuild": "node ./bin/postBuild.js", "rebuild-win": "set BUILD_TYPE=preview& npm run prebuild & npm run build-win & npm run serve", "build": "set BUILD_TYPE=final& npm run prebuild & npm run build-win", "deploy": "npm run build & npm run serve", "build-win": "set NODE_ENV=production & npm run element-build & npm run build-doc & npm run build:html & webpack -p --config ./config/webpack.config.prod.js --json > webpack.log.json & npm run postbuild", "lint": "eslint config src/js/**/*.js", "jscs": "jscs src/js/", "test": "jest --no-cache --verbose --config=./__tests__/jest.config", "test:watch": "npm run test -- --watch", "element-init": "node node_modules/element-theme/bin/element-theme -i src/js/core/ui/element-theme.css", "element-build": "node node_modules/element-theme/bin/element-theme -c src/js/core/ui/element-theme.css -o src/js/core/ui/element-theme ", "build-doc": "node bin/buildDoc.js ", "storybook": "start-storybook -p 9001 -c .storybook" }, "repository": { "type": "git", "url": "my_url" }, "license": "MIT", "bugs": { "url": "my_url" }, "homepage": "my_homepage", "dependencies": { "autoprefixer": "^6.3.6", "axios": "^0.11.1", "babel-runtime": "^6.23.0", "babel-standalone": "^6.10.3", "bluebird": "^3.4.0", "brace": "^0.8.0", "browserify": "^13.0.1", "chai": "^3.5.0", "classnames": "2.2.3", "cls-bluebird": "^1.0.1", "codemirror": "^5.16.0", "connect-history-api-fallback": "^1.3.0", "continuation-local-storage": "^3.1.7", "dateformat": "^1.0.12", "diff": "^3.0.1", "element-theme": "^0.4.0", "element-ui": "^1.1.5", "express-history-api-fallback": "^2.0.0", "filedrop": "^2.0.0", "fs-extra": "^0.30.0", "history": "^2.0.2", "humps": "^1.0.0", "immutability-helper": "^2.1.1", "isomorphic-fetch": "^2.2.1", "json-loader": "^0.5.4", "jszip": "^3.0.0", "jszip-utils": "0.0.2", "material-ui": "^0.16.7", "materialize-css": "^0.97.6", "mocha": "^2.5.3", "moment": "^2.17.1", "normalizr": "^1.0.0", "raven-js": "^3.9.1", "react": "^15.0.1", "react-ace": "^3.5.0", "react-addons-update": "^15.4.2", "react-dom": "^15.0.1", "react-redux": "^4.4.5", "react-router": "^2.3.0", "react-router-redux": "^4.0.2", "redux": "^3.4.0", "redux-logger": "^2.6.1", "redux-saga": "^0.9.5", "request": "^2.72.0", "request-promise": "^3.0.0", "reselect": "^2.5.4", "save-as": "^0.1.7", "showdown": "^1.4.2", "three": "^0.79.0", "url-pattern": "^1.0.3", "vue": "^2.0.5", "vue-easy-slider": "^1.4.0", "vue-loader": "^9.8.1", "vue-router": "^2.0.1", "vue-slider-component": "^2.0.4", "walk": "^2.3.9" }, "devDependencies": { "@kadira/storybook": "^2.35.3", "babel-core": "^6.7.6", "babel-eslint": "^6.1.0", "babel-jest": "^18.0.0", "babel-loader": "^6.0.2", "babel-plugin-react-transform": "^2.0.2", "babel-polyfill": "^6.23.0", "babel-preset-es2015": "^6.22.0", "babel-preset-es2016": "^6.22.0", "babel-preset-react": "^6.23.0", "babel-preset-stage-2": "^6.5.0", "babel-register": "^6.7.2", "chai": "3.5.0", "chai-jquery": "2.0.0", "cheerio": "0.20.0", "colors": "1.1.2", "concurrently": "^2.0.0", "copy-webpack-plugin": "2.1.1", "css-loader": "0.23.1", "element-theme-default": "^1.1.5", "enzyme": "^2.7.1", "eslint": "^2.13.1", "eslint-config-airbnb": "^9.0.1", "eslint-plugin-import": "^2.2.0", "eslint-plugin-jsx-a11y": "^4.0.0", "eslint-plugin-react": "^5.2.2", "express": "^4.13.4", "extract-text-webpack-plugin": "1.0.1", "file-loader": "0.8.5", "identity-obj-proxy": "^3.0.0", "jest": "^19.0.2", "jest-cli": "^18.1.0", "jest-css-modules": "^1.1.0", "jest-enzyme": "^2.1.2", "jest-vue-preprocessor": "^0.1.2", "jquery": "2.2.3", "jscs": "3.0.3", "jsdoc-to-markdown": "^2.0.0", "jsdom": "8.4.0", "json-loader": "^0.5.4", "mocha": "^2.4.5", "ncp": "^2.0.0", "node-sass": "3.7.0", "postcss-loader": "0.8.2", "react-addons-test-utils": "^15.4.2", "react-hot-loader": "1.3.0", "react-test-renderer": "^15.4.2", "react-transform-hmr": "^1.0.4", "redux-devtools": "^3.3.1", "redux-devtools-dock-monitor": "^1.1.1", "redux-devtools-log-monitor": "^1.0.11", "regenerator-runtime": "^0.10.3", "remotedev": "^0.1.2", "rimraf": "^2.5.2", "sass-loader": "3.2.0", "storybook-addon-material-ui": "^0.7.6", "style-loader": "0.13.1", "url-loader": "0.5.7", "vueify": "^9.4.0", "webpack": "^1.13.0", "webpack-babel-jest": "^1.0.4", "webpack-dev-middleware": "^1.6.1", "webpack-dev-server": "^1.16.3", "webpack-hot-middleware": "^2.10.0" } }
我用过了import "babel-polyfill",它解决了我的问题
import "babel-polyfill"