ich meinen Gulp Build-Prozess Refactoring, damit der Benutzer nicht V=1.2.88
usw. ich den Benutzer möchteGulp: Wie man Ordnername liest?
Vielmehr eingeben muss nur major gulp build
, minor gulp build
oder patch gulp build
einzugeben. Was würde dann natürlich die Versionsnummer wiederholen.
Dafür aber arbeiten muss ich schlucke den Ordnernamen des letzten Build erstellt zu lesen:
Meine Aktuelle Gulp Aufgabe, die die Versionsnummer erzeugt:
var version = '';
var env = process.env.V; // V={version number} ie: V=1.0.1 gulp build
gulp.task('version', function() {
return printOut(env);
});
function errorlog(err) {
console.log(err.message);
this.emit('end');
}
function printOut(ver) {
gutil.log(gutil.colors.blue.bold('Last build: '+paths.last));
version = ver;
if (version === undefined) {
version = '0.0.0';
}
gutil.log(gutil.colors.blue.bold('##################################################'));
gutil.log(gutil.colors.blue.bold(' Building Dashboard version '+version));
gutil.log(gutil.colors.green.bold('~~ All change is detectable ~~'));
gutil.log(gutil.colors.blue.bold('##################################################'));
}
Jedermann wissen, wie man das in Gulp schafft?
Das ist, was ich bisher Gulp-folders
So mit dem Gulp-folders
Plugin fand ich die folgende Aufgabe geschaffen, die erste läuft:
gulp.task('build:getLastBuild', folders(paths.lastBuild, function(folder) {
console.log('Last version number is: '+folder);
return lastVersion = folder;
//This will loop over all folders inside pathToFolder main, secondary
//Return stream so gulp-folders can concatenate all of them
//so you still can use safely use gulp multitasking
// return gutil.colors.blue.bold('Last build folder: '+folder);
// return gulp.src(path.join(paths.lastBuild, folder))
// .pipe(console.log(' Getting last version number: '+folder))
// .pipe(lastVersion = folder);
}));
Nun, wenn ich mein Körperbau laufen, es unten überprüfen ! Ich erhalte den Namen des Ordners, in den console.log, aber meine Prozessfehler aus :(
TypeError: e.pipe is not a function
Ich verstehe nicht, die Beziehung zwischen „lesen Sie die Ordnernamen“ und Ihre Build-Task. Allerdings denke ich, du solltest 'yargs' (https://www.npmjs.com/package/yargs) verwenden, damit du so etwas wie 'gulp - major 2.2.2 build' machen kannst. Wenn major die neueste Version ist, müssen Sie vielleicht nur das 'path' Modul des Knotens verwenden, mit einer Sortierfunktion, um die neueste Version zu finden. – cl3m
Nun, die Idee ist sicherzustellen, dass die Benutzer KEINE Versionsnummer kennen oder eingeben müssen. Ich möchte den Namen des Ordners lesen, in meinem Beispiel oben: '1.2.8' Und dann, wenn es' Major' ist 1 + 1, oder 'Minor' 2 + 1 etc ... –
Was ist mit https: //? www.npmjs.com/package/semver-utils um die Version zu überprüfen und 'fs.readdir()' oder 'fs.readdirSync()' um die Verzeichnisse zu lesen? – cl3m