首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mocha为ES6对象扩展运算符抛出意外的令牌错误。

Mocha为ES6对象扩展运算符抛出意外的令牌错误。
EN

Stack Overflow用户
提问于 2016-05-10 15:31:05
回答 2查看 3K关注 0票数 3

当我运行mocha时,如果我在我的应用程序中使用对象扩展操作符,它会突然中断一个Unexpected token错误:

代码语言:javascript
复制
SyntaxError: ../app/middleware/api.js: Unexpected token (30:13)
  28 |
  29 |   // Dispatch beginning action
> 30 |   dispatch({ ...payload, type: startAction });

Object.assign替换它解决了这个问题。我已经将transform-object-rest-spread插件包括在webpack.config.js文件中,如下所示:

代码语言:javascript
复制
  module: {
    loaders: [{
      test: /\.js?$/,
      exclude: /(node_modules|bower_components)/,
      loader: 'babel',
      query: {
        presets: ['stage-2','es2015','react'],
        plugins: ['transform-class-properties', 'transform-object-rest-spread']
      }
    }]
  }

这个应用程序在浏览器中运行得很好,这让我相信像这样运行摩卡:

mocha './app/tests/*.spec.js' --compilers js:babel-register --recursive

不包括babel插件。

有什么办法让它包括它们吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-10 16:31:56

由于您的配置在您的webpack.config.js文件中,所以Babel只在通过Webpack运行时才会编译文件。当您通过Mocha运行您的文件时,Babel将在没有任何配置的情况下运行。

您应该将配置移动到项目中的.babelrc文件中,其中包含:

代码语言:javascript
复制
{
    presets: ['stage-2','es2015','react'],
    plugins: ['transform-class-properties', 'transform-object-rest-spread']
}

并从webpack配置中删除配置。

票数 9
EN

Stack Overflow用户

发布于 2016-05-10 16:00:25

尝试使用babel-core/register而不是babel-register

这就是我如何使用摩卡运行我自己的测试,它工作得很好:

代码语言:javascript
复制
find ./tests -name "*.test.js" | xargs mocha --compilers js:babel-core/register
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37142972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档