Javascript 大口喝摩卡如何通过编译器标志?
我正在尝试使用,但找不到传递编译器标志的好方法。有没有办法把它包括在我的吞咽任务中?也许在另一条管道里 从命令行运行mocha的示例(工作正常)Javascript 大口喝摩卡如何通过编译器标志?,javascript,gulp,mocha.js,Javascript,Gulp,Mocha.js,我正在尝试使用,但找不到传递编译器标志的好方法。有没有办法把它包括在我的吞咽任务中?也许在另一条管道里 从命令行运行mocha的示例(工作正常) mocha——编译器:my_compiler.js test/***.js 使用gulp mocha的示例(但我可以在哪里指定编译器) 我在gulp mocha插件下没有看到编译器选项,所以我想我需要通过某种方式通过管道添加文本来添加编译器 我刚刚注意到文件处于底部状态- 对于CoffeeScript支持,请将require('CoffeeScript
mocha——编译器:my_compiler.js test/***.js
使用gulp mocha的示例(但我可以在哪里指定编译器)
我在gulp mocha插件下没有看到编译器选项,所以我想我需要通过某种方式通过管道添加文本来添加编译器 我刚刚注意到文件处于底部状态- 对于CoffeeScript支持,请将require('CoffeeScript')与CoffeeScript 1.6一起添加,或将require('CoffeeScript/register')与CoffeeScript 1.7+一起添加
我在gulp文件
require('./my_compiler')的顶部为我自己的编译器添加了一个require语句代码>这似乎是可行的 使用require('babel-core/register')
在gulpfile的开头Justin Maat,您不需要修改gulpfile.js
。从CLI
使用gulp
时,只需使用——require
:
### before
gulp test
### after
gulp --require babel/register test
你注意到区别了吗?为了节省您的按键次数,请将其添加到.bashrc
或.zshrc
中:
alias gulp='gulp --require babel/register'
下一次,您可以像往常一样使用gulp
gulp test
最重要的答案取决于使用require钩子。这只会在当前流程中起作用,如果在单独的流程中运行Mocha测试,则不会起作用,如使用gulp spawn Mocha
这是将编译器传递到mocha模块的方式:
return mocha({
compilers: [
'js:babel-core/register',
]
});
Mocha将循环使用编译器
属性的元素,并在:
上拆分。它将把它前面的字符串作为后面的扩展,并将它后面的所有内容注入到require()
语句中。供现在尝试的人使用
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)的顶部
运行您的测试,它应该工作
gulp test-mocha
请改进你的答案。解释你是如何解决这个问题的,以及用户做错了什么。嗨@lin,大口喝摩卡就可以包装摩卡,我们可以将编译器作为参数传递。在gulp任务中,我们使用babel将es6转换为es5作为编译器。不管答案是否清晰,它确实解决了让babel编译mocha测试的问题。谢谢你,胡安require(babel/register)
在gulp文件中不是一个干净的解决方案,因为它加载了babel钩子,文档中的该钩子将污染全局范围并引入冲突
cf。如果您使用此解决方案,则应仅针对测试进行此操作(但仍可能导致问题…)。如果您使用的是babel 6,则新方法是requre('babel-core/register')
。小心,因为require('babel/register')
将不再工作。更多:
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);
});
var gulp = require('gulp');
var gutil = require('gulp-util');
var mocha = require('gulp-mocha');
var babel = require('babel-register');
gulp test-mocha