2016-02-03 4 views
1

Я искал какое-то время для этого, но не повезло.Gulp concat - все файлы, за исключением некоторых

Я пытаюсь написать задачу gulp, которая должна конкатенировать все js-файлы внутри моей папки lib, за исключением некоторых.

Я попытался с нижеследующим, используя Глоток-игнорировать, но не повезло:

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 такова:

Я хочу объединить все файлы внутри lib папка, но внутри ionic-> 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 предлагает ответ, я думаю, что это должно быть: gulp. src ([path.libs, ignoreIonic]) ... – niklas

+0

Я получаю ошибку: Ошибка: Отсутствует положительный glob – Nick

Смежные вопросы