在使用gulp的task进程时,有时需要通过带参执行不同的命令操作,以便灵活操作不同功能和精简代码。
这里使用的是minimist,可通过npm进行安装:
npm install minimist --save
在实际开发中,发现需要对js进行压缩处理,在进程中只能指定某个js文件或通过通配符进行匹配,这样使用起来不灵活,需要对特定文件处理时,则要增加进程单独处理。
//指定某个文件进行处理
gulp.task('uglifyJs', function(){
gulp.src('assets/js/index.js')
.pipe($.babel())
.pipe($.uglify())
.pipe(gulp.dest('dist/js'));
});
//通过通配符进行匹配
gulp.task('uglifyJs', function(){
gulp.src('assets/js/*.js')
.pipe($.babel())
.pipe($.uglify())
.pipe(gulp.dest('dist/js'));
});
使用minimist后,则可以通过参数来指定处理某个文件了。具体如下所示
//引入
var argv = require('minimist')(process.argv.slice(3));
//使用
gulp.task('uglifyJs', function(){
var _file = 'undefined'===typeof argv.file?'js':argv.file;
var _name= 'undefined'===typeof argv.name?'index':argv.name;
gulp.src('assets/' + _file + '/' + _name)
.pipe($.babel())
.pipe($.uglify())
.pipe(gulp.dest('dist/' + _file));
});
//执行命令
gulp uglifyJs --file js --name index.js
/**
* --file 指定读取和生成目录
* --name 指定压缩文件名
*/