Javascript 如何使用gulp browserify查看多个文件,但只处理一个文件?

Javascript 如何使用gulp browserify查看多个文件,但只处理一个文件?,javascript,browserify,gulp,Javascript,Browserify,Gulp,每次源文件更改时,我都会尝试连接并重新生成捆绑包。但是,gulp browserify需要一个单一的编译入口点(例如,src/js/app.js),并获取每个依赖项本身: gulp.src('src/js/app.js') .pipe(browserify()) .pipe(gulp.dest('dist')) 但是,使用gulp watch时,每次更改都无法重新生成,因为只监视入口点文件。我真正需要的是能够查看多个文件,然后只处理入口点文件(查找replaceEverythi

每次源文件更改时,我都会尝试连接并重新生成捆绑包。但是,
gulp browserify
需要一个单一的编译入口点(例如,
src/js/app.js
),并获取每个依赖项本身:

gulp.src('src/js/app.js')
    .pipe(browserify())
    .pipe(gulp.dest('dist'))
但是,使用
gulp watch
时,每次更改都无法重新生成,因为只监视入口点文件。我真正需要的是能够查看多个文件,然后只处理入口点文件(查找
replaceEverythingWithEntryPointFile
):

gulp.src(“src/***.js”)
.pipe(watch())

.pipe(replaceEverythingWithEntryPointFile())/只需在文件更改时调用普通任务,如下所示:

gulp.task(“buildjs”,function()){
返回gulp.src('src/js/app.js')
.pipe(browserify())
.pipe(大口目的地('dist'))
});
吞咽任务(“监视”,函数(){
//在任何更改时调用“buildjs”
gulp.watch(“src/***/.js”,[“build js”]);
});
如果要使用
gulpwatch
(因为它可以查找新文件),则需要执行以下操作:

gulp.task(“watch”,function()){
监视({glob:src/***/.js“},函数(){
吞咽开始(“构建js”);
});
});
使用
gulp-watch
还有批处理操作的好处,因此,如果您一次修改多个文件,您将不会在一行中得到一堆构建。

gulp-browserify已被禁用

首选方法是将browserify直接与乙烯基源流结合使用

这意味着在构建脚本中声明browserify和乙烯基源流:

var browserify = require('browserify'),
    source = require('vinyl-source-stream');
然后在函数中使用它们来构建组合的JS文件

function buildVendorJs()
{ 
    return browserify('./js/vendor.js')
        .bundle()
        .pipe(source('./js/vendor.js'))
        .pipe(debug({verbose: true}))
        .pipe(gulp.dest(outputDir));
}

完成后,browserify将使用vendor.js中的requires(“…”)调用创建依赖关系树,并构建一个新的vendor.js,其中所有依赖关系都被模块化并拉入一个vendor.js文件中

Adapting@over热心地回答一个完全吞咽的新手,下面是
gulpfile.js
代码,带有内联解释。(此文件将放置在项目根目录下,并从该位置运行,这是除底部详细说明的npm安装之外所需的全部内容)

如果尚未安装,请不要忘记npm安装三项要求:

npm install --save-dev gulp gulp-watch gulp-browserify
请不要接受这个答案,因为它是改编自@Over热心。
作为上述所有方法的替代方法,您可以尝试(我自己没有尝试过),但是任务管理器方法(如上所述)也可以在以后需要为您的构建运行除
browserify
之外的其他东西时为您扩展

一定要把那条流还给我
return gulp.src('src/js/app.js')…
对于更新版本的gulp watch,您需要调用并使用回调函数<代码>gulp.task(“watch”,function(){watch({glob:src/***/.js“}),function(files,cb){gulp.start(“build js”,cb);})var gulp = require('gulp'); var watch = require('gulp-watch'); var browserify = require('gulp-browserify'); // // task for building - invoked simply via 'gulp' // gulp.task('default', function() { return gulp.src('public-script-source/main.js') /* source to build */ .pipe(browserify()) .pipe(gulp.dest('public/script')) /* output directory */ }); // // task for continuously building upon javascript change - // invoked via 'gulp watch' // gulp.task("watch", function() { watch({glob: "public-script-source/*.js"}, function() { gulp.start("default"); }); });
npm install --save-dev gulp gulp-watch gulp-browserify