2017-08-01 99 views
0

我試圖設置我的gulpfile.js來連接我的src/js文件夾中的所有.js文件,並根據其父文件夾命名它們。文件夾結構的使用Gulp連接並重命名基於目錄名稱的文件

例子:

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

但我想可以通過文件夾和名稱的變化不確定運行的功能。

我個人不知道一個簡單的方法來做到這一點。我通常會去解決我的問題,就是用這些文件夾的名稱設置一個路徑變量,然後像這樣構建我的任務。

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可以做你想做的,但我個人還沒有研究它。