Javascript 使用Gulp基于目录名连接和重命名文件
我正在尝试设置我的Javascript 使用Gulp基于目录名连接和重命名文件,javascript,gulp,concatenation,gulp-concat,Javascript,Gulp,Concatenation,Gulp Concat,我正在尝试设置我的gulpfile.js来连接我的src/js文件夹中的所有.js文件,并根据它们的父文件夹命名它们 文件夹结构示例: project | +-assets | | | +-app.min.js | | | +-vendor.min.js | +-src | | | +-app | | | | | +-file1.js | | | | | +-file2.js | | | +-vendor | | | | | +-file1.js | | | | | +-file2.js 我可
gulpfile.js
来连接我的src/js
文件夹中的所有.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'))
});
但是我想要一个函数,它可以运行在未定义的文件夹和名称变体中
我个人不知道一个简单的方法。解决问题的方法通常是用这些文件夹的名称设置一个path变量,然后像这样构建我的任务
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'))
}
});
var path=['app','vendor'];
gulp.task('js',function(){
对于(变量i=0;i
我听说可以做你想做的事,但我个人还没有研究过。看看官方配方。它应该显示出你想要的东西
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'));
});