2016-02-03 85 views
1

我一直在尋找一段時間,但沒有運氣。Gulp concat - 除了一些文件外的所有文件

我想寫一個應該連接我的lib文件夾內的所有js文件,除了一些之外的一個gulp任務。

我試着用下面,使用一飲而盡,不理會,但沒有運氣:

var gulpIgnore = require('gulp-ignore'); 

var ignoreIonic = '!./www/lib/ionic/'; 

gulp.task('unify-libs', function() { 
    gulp.src(paths.libs) 
     .pipe(sourcemaps.init()) 
     .pipe(ngAnnotate({ 
      single_quotes: true 
     })) 
     .pipe(gulpIgnore.exclude(ignoreIonic)) 
     .pipe(concat('libs.js')) 
     .pipe(uglify()) 
     .pipe(sourcemaps.write()) 
     .pipe(gulp.dest('./src/js')); 
}); 

我的文件夾結構如下:

www 
|--lib 
    |--ionic 
    | |--css 
    | |--fonts 
    | |--js 
    | | |--angular 
    | | |--angular-ui 
    | | |--ionic.bundle.js 
    | | |--ionic.bundle.min.js 
    | | |--ionic.js 
    | | |--ionic.min.js 
    | | |--ionic-angular.js 
    | | |--ionic-angular.min.js 
    | |--scss 
    |--test.js 

我想要實現與gulp的任務是:

我想連接庫文件夾裏面的所有文件,但在離子 - > js裏我只想連接ionic.bundle.min.js到最終的JavaScript而不是所有的文件。

任何幫助?謝謝

回答

0

最後,我解決了這種方式:

var paths = { 
    libs: ['./www/lib/**/*.js', '!./www/lib/ionic/**'], 
    .... 
}; 

gulp.task('unify-libs', function() { 
    gulp.src(paths.libs) 
     .pipe(sourcemaps.init()) 
     .pipe(ngAnnotate({single_quotes: true})) 
     .pipe(concat('libs.js')) 
     .pipe(uglify()) 
     .pipe(sourcemaps.write()) 
     .pipe(gulp.dest('./src/' + appRelease + '/js')); 
}); 

,它現在正在編譯lib文件夾內的所有文件,離子文件夾內的任何文件除外。我只是決定將我需要的唯一文件直接複製到我的src文件夾中,這讓我的生活變得更輕鬆。

希望它有幫助。

1

我的幫助並不簡單,但長遠來看可能會更好。我建議不要重新發明輪子,並使用經過驗證的軟件包進行移動應用程序開發。有一個偉大的Yeoman Geneator那裏將像包括一飲而盡縮小與所有演員從頭交付離子啓動項目: generator-m-ionic

+0

感謝您的鏈接,但我花了一些時間來調整,以正確工作,因爲我需要,唯一剩下要做的就是這個串聯的事情.. 我應該可能使用過你提供的工具,但現在我真的不想再開始一切 – Nick

+0

閱讀本文http://stackoverflow.com/questions/23384239/excluding-files-directories-from-gulp-task提供的答案,我認爲它應該是:吞噬。 src([path.libs,ignoreIonic])... – niklas

+0

我得到thie錯誤:錯誤:缺少正整數 – Nick

相關問題