Mam zadanie gulp rjs, które łączy i uglifikuje wszystkie moje niestandardowe pliki .JS (dowolne biblioteki innych producentów).
To, co próbuję zrobić, to wykluczyć niektóre pliki / katalogi z tego zadania (kontrolery i dyrektywy).
Oto moje drzewo:
- application
- resources
- js
main.js
- vendor
- jquery
- modernzr
- angular
- controllers
- controller1
- controller2
- controller3
- directives
- directives1
- directives2
- directives3
- widgets
- widget1
- widget2
- widget3
- widget4
- modules
- modules1
- modules2
- modules3
- modules4
Oto moje gulp.js
dir = {
app: 'application',
dest: 'dest',
};
config = {
src: {
js: dir.app + '/resources/js'
},
dest: {
js: dir.dest + '/resources/js'
}
};
gulp.task('rjs', function() {
rjs({
baseUrl: config.src.js,
out: 'main.js',
name: 'main',
mainConfigFile: config.src.js + '/main.js',
exclude: [ 'jquery', 'angular']
})
.pipe(prod ? uglify({ mangle: false, outSourceMap: true, compress: { drop_console: true } }) : gutil.noop())
.pipe(gulp.dest(config.dest.js))
.pipe(filesize())
.pipe(dev ? connect.reload() : gutil.noop());
});
gulp.src(['./*.js', '!./node_modules/**'])
najpierw wykluczenie wzorca ( ), a następnie gulp-ignoreOdpowiedzi:
Szybka odpowiedź
W src zawsze możesz określić pliki do zignorowania za pomocą „!”.
Przykład (chcesz wykluczyć wszystkie pliki * .min.js w folderze i podfolderze js:
Możesz to zrobić również dla pojedynczych plików.
Rozszerzona odpowiedź:
Wyciąg z dokumentacji łyka:
glob odnosi się do składni node-glob lub może to być bezpośrednia ścieżka pliku.
Tak więc, patrząc na dokumentację węzłów- globów, widzimy, że używa biblioteki minimatch do dopasowania.
W dokumentacji minimatcha wskazują one:
I dlatego używam! symbol wykluczy pliki / katalogi z zadania przełknięcia
źródło
Negation The intent for negation would be for a pattern starting with ! to match everything that doesn't match the supplied pattern. However, the implementation is weird, and for the time being, this should be avoided. The behavior is deprecated in version 5, and will be removed entirely in version 6.
gulp.src([/*file globs*/], {base:"."})
aby wzorce globów działały poprawnie.Gulp używa mikromacierzy pod maską do dopasowywania globów, więc jeśli chcesz wykluczyć dowolny plik .min.js, możesz to zrobić, korzystając z rozszerzonej funkcji globowania , takiej jak ta:
Zasadniczo mówi: chwyć wszystko na dowolnym poziomie js , który nie kończy się na * .min.js
źródło