我在ES6 module transpiler和我的Jasmine测试中遇到了一些问题,在这里:
import Foo from '../dist/Foo.js';
describe('Test Foo', ()=>{
let foo
beforeEach(()=>{
foo = new Foo()
})
it('Foo should create new instance', ()=>{
expect(foo instanceof Foo).toBe(true)
})
})
和我的gulp文件:
gulp.task('tests:concat', function(){
return gulp.src(['spec/*.js', '!spec/all.spec.js'])
.pipe(concat('all.spec.js'))
.pipe(gulp.dest('spec/'))
})
gulp.task('tests:es6', ['tests:concat'], function(){
return gulp.src('spec/all.spec.js')
.pipe(es6ModuleTranspiler({ type: 'cjs' }))
.pipe(es6transpiler())
.pipe(gulp.dest('spec/'))
})
gulp.task('tests', ['tests:es6'], function(){
gulp.src('spec/all.spec.js')
.pipe(browserify())
.pipe(gulp.dest('spec/'))
})
当我尝试运行此任务时
gulp tests
我得到了
throw err ^
错误:Transform类中没有writecb
所以我发现错误在我的测试中抛出全局变量describe
,因为如果我添加这一行:
let describe, beforeEach, it, expect
编译完成没有问题
在ES6模块转换器的文档中没有信息如何允许全局变量。如何解决?