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