2015-02-06 46 views
9

所有我看到使用browserify和gulp的例子假设你只想浏览1个文件。通常情况并非如此。使用全局匹配时,通过文件browserify在gulp

我遇到了一个使用乙烯基变换的例子,但我无法让它正常工作。这里是(咖啡脚本)代码:

# Browserify JS 

gulp.task 'browserify', [], -> 

    # Create the transform 
    br = transform (f) -> 
     return browserify(f).bundle() 

    # Run browserify 
    gulp.src(['./public/js/**/*.js']) 
     .pipe(br) 
     .pipe(gulp.dest('.')) 

,但我得到了以下错误:

[10:50:55] Starting 'browserify'... 

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: write after end 
+1

您通常使用一个文件作为入口点,然后browserify构建依赖关系图并添加所有必需的文件。你有一个browserify入口点的完整目录吗? – Ben 2015-02-06 21:28:37

+0

是的,我有多个入口点for browserify – mrwooster 2015-02-06 21:31:17

+0

考虑使用'require-globify' – chatoo 2016-04-25 02:23:51

回答

15

最简单的方法是直接使用glob

var glob = require('glob'); 

gulp.task('browserify', function() { 
    var files = glob.sync('./public/js/**/*.js'); 
    return browserify({entries: files}) 
    .bundle() 
    .pipe(gulp.dest('.')); 
}); 
+0

这么简单,不能相信我花了这么长时间才找到这个!谢谢 – mrwooster 2015-02-06 21:46:10

+3

似乎传递数组globalsync不再有效,我试过但得到'''类型错误:glob模式字符串required'''。传递一个字符串工作正常。感谢您的答案! – bencrinkle 2015-03-27 15:43:18

+0

如果要传递数组,则使用'glob-array' – 2017-01-04 15:56:02