2014-12-17 7 views

Antwort

31

Es soll eine beliebige Anzahl von Unterverzeichnissen übereinstimmen:

** Wenn ein "globstar" alleine in einem Pfadabschnitt ist, dann stimmt es mit null oder mehr Verzeichnissen und Unterverzeichnissen überein, die nach Übereinstimmungen suchen. Es werden keine symbolischen Verzeichnisse gecrawlt.

https://github.com/isaacs/node-glob

Haben Sie Verzeichnisse in dort Symlink?

Symlinks

Ich glaube nicht, Sie schlucken nativ Ihre symlinked Verzeichnisse bekommen zu durchqueren. Ich empfehle Ihnen, einen Blick auf node.js fs.readdir recursive directory search zu werfen und zu sehen, ob einige dieser Lösungen auf Ihren Anwendungsfall angewendet werden können. Nichts in der Frage oder den Antworten adressiert ausdrücklich Symlinks, also weiß ich nicht, ob es dort eine Lösung für Sie gibt oder nicht. Wenn Sie mithilfe einer dieser Lösungen ein Array der dereferenzierten Pfadnamen abrufen können, übergeben Sie das Array einfach an gulp.src().

+1

Ich habe tatsächlich Smilinks, wie es passiert. Good show old chap –

+0

Scheint wie das beantwortet wird ... –

+1

@KellyJAndrews Anders als ich kann noch nicht alle Dateien und die Dateien in ihren Unterordnern zielen :) So für mich wurde noch nichts beantwortet –

4

Ich habe gerade ein paar Tests gemacht - und das funktioniert wirklich gut für mich.

Im Moment habe ich die folgende Struktur -

--apps 
    --scripts 
    ----test.js 
    ----test-folder 
    ------test2.js 
    ------test-folder-deep 
    --------test3.js 
    --myApp 
    ----scripts-symlinked (symlinked to apps/scripts) 
    ----gulpfile.js 

ich meine Symlink Ordner einrichten (auf Mac - von 'myApp' Ordner) mit:

ln -s /Users/kandrews/apps/scripts ./scripts-symlinked 

In meinem gulpfile.js ich habe folgendes :

var gulp = require('gulp'), 
    jshint = require('gulp-jshint'); 

gulp.task('jshint', function() { 
    gulp.src('./scripts-symlinked/**/*.js') 
     .pipe(jshint()) 
     .pipe(jshint.reporter('default')); 
}); 

gulp.task('watch', function() { 
    gulp.watch('./scripts-symlinked/**/*.js', ['jshint']); 
}); 

Funktioniert perfekt. Ich habe das auch in einem Unterverzeichnis versucht ('scripts/symlinked-scripts') und war auch erfolgreich.

+0

Vielleicht habe ich @Jamie Hutbers Ordnerstruktur missverstanden. Ich dachte, der Inhalt des 'js'-Ordners wäre ein Symlink, nicht' js' selbst. Aber wenn das der Fall ist, dann weiß ich aufgrund Ihrer Ergebnisse nicht, warum ihr ursprünglicher Glob nicht funktioniert hätte. – JMM

+0

Zumindest habe ich heute etwas gelernt :) –

+1

Wenn ich für jedes Mal ein Nickel hatte, sagte ich das ... – JMM

Verwandte Themen