开玩笑错误意外的令牌...(ES6)
Posted
技术标签:
【中文标题】开玩笑错误意外的令牌...(ES6)【英文标题】:Jest error Unexpected token ... (ES6) 【发布时间】:2018-04-04 05:53:47 【问题描述】:每当我在命令行中运行 jest 时都会收到以下错误:
● Test suite failed to run
/Users/<USER>/<Project>/src/login/LoginAPI.js:13
...headers,
^^^
SyntaxError: Unexpected token ...
它中断的代码使用 ES6 省略号:
headers:
...headers
,
这是我的 .babelrc 文件的样子:
"presets":["env", "react"]
这就是我的 package.json 中的内容:
"dependencies":
"express": "^4.15.4",
"express-healthcheck": "^0.1.0",
"js-cookie": "^2.1.4",
"normalize.css": "^7.0.0",
"query-string": "^5.0.0",
"react": "^15.6.1",
"react-dom": "^15.6.1",
"react-router-dom": "^4.2.2"
,
"devDependencies":
"babel-jest": "^21.2.0",
"babel-preset-env": "^1.6.1",
"babel-preset-es2015": "^6.24.1",
"enzyme": "^3.1.0",
"enzyme-adapter-react-15": "^1.0.2",
"jest": "^21.2.1",
"jest-cli": "^21.2.1",
"react-scripts": "1.0.10"
,
"jest":
"moduleNameMapper":
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
"\\.(css|less)$": "<rootDir>/__mocks__/styleMock.js"
,
"moduleFileExtensions": ["js"],
"moduleDirectories": [
"node_modules",
"bower_components",
"shared"
],
"testPathIgnorePatterns": [
"/node_modules/",
"/yarn-cache/"
]
【问题讨论】:
我认为你需要对象扩展运算符插件。 这不是您正在使用的 ES6 功能,对象扩展运算符甚至还没有在语言中,只是第 3 阶段。您可能已经习惯了允许它但它不起作用的 jsx默认在js中 @Axnyff - 哦,我以为它是 ES6 的一部分。那么这是否意味着我需要将 stage3 添加到我的 .babelrc 中? 【参考方案1】:您需要为此语法使用特定的 babel 预设。 Check this preset
npm install --save-dev babel-plugin-transform-object-rest-spread
然后将它添加到你的 .babelrc
"plugins": ["transform-object-rest-spread"]
您可能想要添加stage-2,因为它有更多的 ES6 好东西。
注意:Jest can read your .babelrc
file
【讨论】:
【参考方案2】:在通天塔 7 中,
babel-plugin-transform-object-rest-spread
会报错:SpreadProperty has been renamed to SpreadElement
。
所以我使用:
npm install --save-dev @babel/plugin-proposal-object-rest-spread
和配置.babelrc
"plugins": ["@babel/plugin-proposal-object-rest-spread"]
【讨论】:
【参考方案3】:我相信有几种解决方案,GitHub Issue 应该概述其中的一些。我会先尝试一下:
"presets": ["es2015", "stage-3", "react"]
【讨论】:
【参考方案4】:在你的 package.json 中添加 "schema-utils": "2.6.6" 作为 "dependencies"
"schema-utils": "2.6.6",
【讨论】:
以上是关于开玩笑错误意外的令牌...(ES6)的主要内容,如果未能解决你的问题,请参考以下文章
简单的 Webpack + React + ES6 + babel 示例不起作用。意外的令牌错误
用 Jest 测试 Vue 失败,Jest 遇到了意外的令牌,SyntaxError: Unexpected token import