用gulp监视是行不通的

时间:2015-06-10 11:44:54

标签: javascript gulp browserify watchify

我已经创建了这个gulp任务用于监视,但是它给出了这个错误:无法读取未定义的属性“缓存”

gulp.task('browserify-With-Watch', function () {
"use strict";
var bundler = browserify({
    entries: ['src/js/ede-wrapper.js'], // Only need initial file, browserify finds the deps
    debug: true, // Gives us sourcemapping
    cache: {},
    packageCache: {},
    fullPaths: true
});

var watcher  = watchify(bundler);

return watcher
    .on('update', function () { // When any files update
        watcher.bundle() // Create new bundle that uses the cache for high performance
            .pipe(source('src/js/ede-wrapper.js'))
            // This is where you add uglifying etc.
            .pipe(gulp.dest('dist'));
    })
    .bundle() // Create the initial bundle when starting the task
    .pipe(source('src/js/ede-wrapper.js'))
    .pipe(gulp.dest('dist'));
});

这是我得到的错误

[17:06:04] Starting 'browserify-With-Watch'...
[17:06:04] 'browserify-With-Watch' errored after 1.6 ms
[17:06:04] TypeError: Cannot read property 'cache' of undefined
    at watchify (d:\KHOBI\Source\ede_js_sdk\node_modules\watchify\index.js:13:27)
    at Gulp.<anonymous> (d:\KHOBI\Source\ede_js_sdk\gulpfile.js:55:20)
    at module.exports (d:\KHOBI\Source\ede_js_sdk\node_modules\gulp\node_modules\orchestrator\lib\runTask.js:34:7)
    at Gulp.Orchestrator._runTask (d:\KHOBI\Source\ede_js_sdk\node_modules\gulp\node_modules\orchestrator\index.js:273:3)
    at Gulp.Orchestrator._runStep (d:\KHOBI\Source\ede_js_sdk\node_modules\gulp\node_modules\orchestrator\index.js:214:10)
    at Gulp.Orchestrator.start (d:\KHOBI\Source\ede_js_sdk\node_modules\gulp\node_modules\orchestrator\index.js:134:8)
    at C:\Users\hasithm\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)

希望我使用的watchify版本没有问题

注意:我使用gulp-browserify进行浏览化

1 个答案:

答案 0 :(得分:2)

  

注意:我使用gulp-browserify进行浏览化

你应该在这里直接使用browserify,而不是gulp-browserify。

watchify需要一个browserify实例,但是您正在为它提供由gulp-browserify创建的流。