当我运行mocha时,如果我在我的应用程序中使用对象扩展操作符,它会突然中断一个Unexpected token错误:
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文件中,如下所示:
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插件。
有什么办法让它包括它们吗?
发布于 2016-05-10 16:31:56
由于您的配置在您的webpack.config.js文件中,所以Babel只在通过Webpack运行时才会编译文件。当您通过Mocha运行您的文件时,Babel将在没有任何配置的情况下运行。
您应该将配置移动到项目中的.babelrc文件中,其中包含:
{
presets: ['stage-2','es2015','react'],
plugins: ['transform-class-properties', 'transform-object-rest-spread']
}并从webpack配置中删除配置。
发布于 2016-05-10 16:00:25
尝试使用babel-core/register而不是babel-register。
这就是我如何使用摩卡运行我自己的测试,它工作得很好:
find ./tests -name "*.test.js" | xargs mocha --compilers js:babel-core/registerhttps://stackoverflow.com/questions/37142972
复制相似问题