我正在尝试设置gulpfile.js
以连接我的.js
文件夹中的所有src/js
文件,并根据其父文件夹命名它们。
文件夹结构示例:
project
|
+-assets
| |
| +-app.min.js
| |
| +-vendor.min.js
|
+-src
| |
| +-app
| | |
| | +-file1.js
| | |
| | +-file2.js
| |
| +-vendor
| | |
| | +-file1.js
| | |
| | +-file2.js
我可以为特定文件夹设置它,并为每个文件夹设置特定的文件名,但我想要一个可以运行未定义的文件夹和名称变体的函数。
我之前使用的是:
gulp.task('js', function () {
gulp.src('src/js/app/**/*.js')
.pipe(plumber(plumberErrorHandler))
.pipe(jshint())
.pipe(jshint.reporter('fail'))
.pipe(concat('app.min.js'))
.pipe(uglify())
.pipe(gulp.dest('assets/js'))
});
答案 0 :(得分:1)
查看this官方食谱。它应该准确显示你想要的东西。
function getFolders(dir) {
return fs.readdirSync(dir)
.filter(function(file) {
return fs.statSync(path.join(dir, file)).isDirectory();
});
}
var folders = getFolders('src');
folders.map(function(folder) {
gulp.src(path.join('src', folder, '/**/*.js'))
.pipe(concat(folder + '.js'))
.pipe(gulp.dest('assets'));
});
答案 1 :(得分:0)
但我想要一个可以运行未定义的文件夹和名称变体的函数。
我个人不知道一个简单的方法。我通常会解决我的问题是设置一个路径变量,其中包含这些文件夹的名称并构建我的任务。
var path = [ 'app', 'vendor' ];
gulp.task('js', function () {
for (var i = 0; i < path.length; i++) {
var p = path[i];
gulp.src('src/' + p + '/**/*.js')
.pipe(plumber(plumberErrorHandler))
.pipe(jshint())
.pipe(jshint.reporter('fail'))
.pipe(concat(p + '.min.js'))
.pipe(uglify())
.pipe(gulp.dest('assets/js'))
}
});
我听说 gulp-path 可能会做你想要的,但我个人还没有调查过。