[英]gulp-mocha how to pass the compilers flag?
我正在尝试使用gulp-mocha模块,但无法找出传递编译器标志的好方法。 有没有办法在我的gulp任务中包含这个? 也许在某个单独的管道中?
从命令行运行mocha的示例(工作正常)
mocha --compilers .:my_compiler.js test/**/*.js
使用gulp-mocha的例子(但我在哪里可以指定编译器)?
gulp.task('test', function () {
gulp.src(["test/**/*.js"], {
read: false
})
.pipe(mocha({
reporter: 'spec'
}))
.pipe(exit());
});
我没有在gulp-mocha插件下看到编译器选项,所以我想我需要以某种方式通过管道附加文本来添加编译器?
var mocha = require('gulp-mocha');
var babel = require('babel/register');
gulp.task('mocha', function() {
return gulp.src(['test/**/*.js'])
.pipe(mocha({
compilers: {
js: babel
}
}));
});
最佳答案依赖于使用require钩子。 这只适用于当前进程,如果你在一个单独的进程中运行Mocha测试,就像gulp-spawn-mocha
。
这是你将编译器传递给mocha模块的方法:
return mocha({
compilers: [
'js:babel-core/register',
]
});
Mocha将循环遍历compilers
属性的元素并拆分:
。 它会将之前的字符串视为要遵循的扩展,并将其后的所有内容注入require()
语句。
使用require('babel-core/register');
在gulpfile的开头
我只是注意到底层状态的文档 -
对于CoffeeScript支持,请使用CoffeeScript 1.6-添加require('coffee-script')或使用CoffeeScript 1.7+添加require('coffee-script / register')。
我在我的require('./my_compiler');
文件require('./my_compiler');
的顶部为我自己的编译器添加了一个require语句require('./my_compiler');
这看起来很有效。
对于任何人现在尝试它
gulp.task('test-mocha', function() {
return gulp.src(['tests/acceptance/*.js'], {read: false})
.pipe(
mocha({
compilers: 'js:babel-core/register',
reporter: 'landing'
})
)
.on('error', gutil.log);
});
并在gulp文件(gulpfile.js)之上
var gulp = require('gulp');
var gutil = require('gulp-util');
var mocha = require('gulp-mocha');
var babel = require('babel-register');
运行你的测试,它应该工作
gulp test-mocha
Justin Maat,你不需要修改你的gulpfile.js
。 你只需要使用--require
使用时gulp
从CLI
:
### before
gulp test
### after
gulp --require babel/register test
你注意到了区别吗? 为了节省几次击键,将其添加到.bashrc
或.zshrc
:
alias gulp='gulp --require babel/register'
下次,你可以正常使用gulp
gulp test
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.