Javascript 为rewireify创建吞咽任务

Javascript 为rewireify创建吞咽任务,javascript,gulp,Javascript,Gulp,试着把它放到手表任务中 browserify -e test/spec/suite.js -t reactify -t rewireify -o test/spec/bundle.js 我的吞咽文件当前为: var gulp = require('gulp'), requireDir = require('require-dir'); requireDir('./gulp-tasks'); gulp.task('default', ['browserify','css','karma'],

试着把它放到手表任务中

browserify -e test/spec/suite.js -t reactify -t rewireify -o test/spec/bundle.js
我的吞咽文件当前为:

var gulp = require('gulp'),
requireDir = require('require-dir');

requireDir('./gulp-tasks');

gulp.task('default', ['browserify','css','karma'], function () {
gulp.watch('../App/src/**/*.js', ['browserify']);
 gulp.watch('../App/src/**/*.css', ['css']);
gulp.watch('../App/src/tests/**/*.js', ['rewireify']);
gulp.watch('../App/src/tests/**/*.js', ['karma']);
});

gulp.task('production', ['react', 'css']);
rewireify.js:

var gulp = require('gulp'),
concat = require('gulp-concat'),
rewireify = require('rewireify');

gulp.task('css', function () {
gulp.src([
    './App/src/tests/**/*.js'
])
    .pipe(concat('bundletest.js'))
    .pipe(rewireify())
    .pipe(gulp.dest('test/spec/bundle.js'));
});
当我运行我的吞咽任务时,我得到错误:

TypeError: Cannot read property 'ignore' of undefined
    at rewireify (d:\Source\Workspaces\\node_modules\rewireify\lib\index.js:12:20)
at Gulp.<anonymous> (d:\Source\Workspaces\Call Parents\DEV\CG.CallParents.Web\Areas\Beta\gulp-tasks\rewireify.js:10:15)
at module.exports (d:\Source\Workspaces\\node_modules\orchestrator\lib\runTask.js:34:7)
at Gulp.Orchestrator._runTask (d:\Source\gulp\node_modules\orchestrator\index.js:273:3)
at Gulp.Orchestrator._runStep (d:\Source\\gulp\node_modules\orchestrator\index.js:214:10)
at Gulp.Orchestrator.start (d:\Source\Workspaces\\node_modules\gulp\node_modules\orchestrator\index.js:134:8)
at C:\Users\matthew.harris\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js:129:20
at process._tickCallback (node.js:355:11)
at Function.Module.runMain (module.js:503:11)
at startup (node.js:129:16)
TypeError:无法读取未定义的属性“ignore”
在rewireify(d:\Source\workspace\\node\u modules\rewireify\lib\index.js:12:20)
狼吞虎咽。(d:\Source\Workspaces\Call Parents\DEV\CG.CallParents.Web\Areas\Beta\gulp tasks\rewireify.js:10:15)
在module.exports(d:\Source\workspace\\node\u modules\orchestrator\lib\runTask.js:34:7)
位于Gulp.Orchestrator.\u runTask(d:\Source\Gulp\node\u modules\Orchestrator\index.js:273:3)
位于Gulp.Orchestrator.\u runStep(d:\Source\\Gulp\node\u modules\Orchestrator\index.js:214:10)
在Gulp.Orchestrator.start(d:\Source\workspace\\node\u modules\Gulp\node\u modules\Orchestrator\index.js:134:8)
在C:\Users\matthew.harris\AppData\Roaming\npm\node\u modules\gulp\bin\gulp.js:129:20
在进程中调用(node.js:355:11)
位于Function.Module.runMain(Module.js:503:11)
启动时(node.js:129:16)

有人知道我如何让它工作吗?

要记住的关键一点是,rewireify(爱这个名字)是一种转变:

Browserify中最强大的功能是。源转换是在解析的模块和返回的内容之间注入的流。使用源代码转换的一个简单用例是将CoffeeScript编译为JavaScript

无论如何,我的建议是将
gulpconcat
部分分离到它自己的任务中,然后创建一个rewireify任务,您将在下面调用该任务:

gulp.task("build-functional", function () {
    return browserify('some-gulp-concatenated.js', {})
        .transform(rewireify, rewireifyOptions)
        .bundle()
        .pipe(gulp.dest('test/spec/bundle.js'))
}
查看另一个例子