Babel 6-> 7:未知错误:意外的令牌(传播运算符)

时间:2019-03-29 22:02:12

标签: vue.js jestjs babeljs nuxt.js babel-jest

我从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上找到。

1 个答案:

答案 0 :(得分:0)

我对“意外令牌...”有类似的问题,这是针对我的@ testing-library的传播运算符错误。即使在我检查了所有herehere正确应用的插件之后,并使用babel.config.js而不是.babelrc(由于babel7);错误仍然存​​在。 令人困惑的是,Jenkins管道能够成功通过同一提交的测试,而不会出现“意外的令牌错误...”。

然后我找到了模式,我的其他团队成员也能够运行测试 而没有遇到错误 ...除了我。我们也都使用相同的package-lock.json

唯一的区别是,与同龄人相比,我使用的是旧版的nodejs和npm。

如果对于相同的源代码提交,则您的其他同伴可以运行测试,但您可以。然后这可能会有用:

  • npm cache clean --force
  • 在主存储库文件夹中:rm -rf node_modules/
  • 升级您的节点js(至少对我而言是8.11.x及更高版本)
  • 再次
  • npm install
  • 再次运行jest;如果在package.json中定义,请运行npm run test

请注意,我不需要升级我的npm。