为什么使用 "gulp-jest" 时会出现 "请使用 --harmony 标志运行 node!" 的错误?

4
当我运行gulp test时,出现以下错误:
Error: Please run node with the --harmony flag!

这是我的Gulp任务:

var jest = require('gulp-jest');

gulp.task('test', function() {
  return gulp.src('src/**/__tests__').pipe(jest({
    rootDir: 'src',
    scriptPreprocessor: '../node_modules/6to5-jest',
    unmockedModulePathPatterns: [ 'react' ]
  }));
});

复现步骤:https://github.com/SEEK-Jobs/react-playground

请注意,npm test 可以正常工作(测试结果如预期失败),但是 gulp test 则出现了上述错误。两者都使用相同的配置对象:

{
  rootDir: 'src',
  scriptPreprocessor: '../node_modules/6to5-jest',
  unmockedModulePathPatterns: [ 'react' ]
}

我做错了什么?


你尝试过按照错误提示所说的去做吗? - user4182277
我想了解为什么在使用 gulp test 时出现错误,而在使用 npm test 时却没有。有任何想法吗? - Misha Moroshko
我也遇到了同样的问题 :( - gcedo
2个回答

7
据我所知,错误是由 jest-cli 抛出的。
之所以您在使用 npm test 时没有遇到此问题,可能是因为您配置了 npm 直接运行 jest bin 脚本,该脚本使用 harmonize 来编程设置 --harmony 标志。
您可以通过安装 harmonize 并在 gulpfile 中添加 require('harmonize')() 来解决这个问题。

1

这是 gulp-eslint 中的一个 bug,现在在版本 0.3.0 中已经修复。


1
我在没有安装 gulp-eslint 的情况下遇到了相同的错误,所以看起来问题出在其他地方。请参见我的问题:https://github.com/Dakuan/gulp-jest/issues/9。(顺便说一句:@steff 的答案有效。) - mik01aj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接