我从babel 6迁移到babel7。我遇到了一些我无法纠正的错误。
未知:意外的令牌(即使我正在使用@ babel / plugin-proposal-object-rest-spread)。
这个问题出现在我运行了嘲笑的单元测试套件时。
错误日志:
► yarn run test:unit
yarn run v1.13.0
$ jest --clearCache && jest --coverage=false
Cleared /tmp/jest_rs
FAIL test/unit/store.test.js
● Test suite failed to run
unknown: Unexpected token (55:10)
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".
Here's what you can do:
• To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
• If you need a custom transformation specify a "transform" option in your config.
• If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.
You'll find more details and examples of these config options in the docs:
https://jestjs.io/docs/en/configuration.html
Details:
unknown: Unexpected token (55:10)
53 | mainMenu: [
54 | {
> 55 | ...this.$store.state.routes.home,
| ^
56 | type: Utils.MenuRecordType.PAGE,
57 | name: this.$t(`main_menu.${this.$store.state.routes.home.key}`),
58 | children: []
我的babel.config.js
和我的jest.config.js
。 (由于stackoverflow限制(您的帖子中的代码太多...),因此不在此处发布。)
完整代码可在github上找到。
答案 0 :(得分:0)
我对“意外令牌...”有类似的问题,这是针对我的@ testing-library的传播运算符错误。即使在我检查了所有here和here正确应用的插件之后,并使用babel.config.js而不是.babelrc(由于babel7);错误仍然存在。 令人困惑的是,Jenkins管道能够成功通过同一提交的测试,而不会出现“意外的令牌错误...”。
然后我找到了模式,我的其他团队成员也能够运行测试 而没有遇到错误 ...除了我。我们也都使用相同的package-lock.json
唯一的区别是,与同龄人相比,我使用的是旧版的nodejs和npm。
如果对于相同的源代码提交,则您的其他同伴可以运行测试,但您可以。然后这可能会有用:
npm cache clean --force
rm -rf node_modules/
npm install
jest
;如果在package.json中定义,请运行npm run test
请注意,我不需要升级我的npm。