2017-10-12 2 views
0

Ich bin neu mit Gulp.Wie gzip ich eine Uglify js mit Gulp ohne Generierung von zwei Dateien in Dist-Ordner

Ich frage mich, wie kann ich alle JS-Dateien von einer statischen Website mit Gulp concat, uglify und gzip.

Ich habe eine Aufgabe wie diese, die funktioniert, aber ich würde nur gehören die gz-Datei im Ordner dist möchte und nicht die combined.js

gulp.task("concat-js", function() { 
return gulp.src("./src/js/*.js") 
    .pipe(concat("combined.min.js")) 
    .pipe(uglify()) 
    .pipe(gzip()) 
    .pipe(gulp.dest("./build/js")); 
}); 

UPDATE

Ich möchte Sie ermutigen um die Kommentare zu lesen. In meinem Fall wurde das Problem durch eine schlechte Verwendung von gulp-useref verursacht, da die Datei am Ende des Buildprozesses generiert wurde. Wahrscheinlich Noob Problem, aber hoffentlich kann jedem helfen.

Vielen Dank im Voraus ...

+0

Warum gzip sie, wenn Sie Ihren Server tun können? –

+0

Ich werde S3 + Cloud Front verwenden, um meine Website zu bedienen –

Antwort

0

Dies sollte funktionieren. Speichern Sie die .min-Datei einfach in einem temporären Ordner. Sie können das später löschen, wenn Sie möchten.

gulp.task("concat-js", function() { 
    return gulp.src("./src/js/*.js") 
    .pipe(concat("combined.min.js")) 

    .pipe(gulp.dest('./temp')) 

    .pipe(uglify()) 
    .pipe(gzip()) 
    .pipe(gulp.dest("./build/js")); 
}); 

Die endgültige Datei wäre "combined.min.js.gz" das einzige in build/js. Wenn Sie diesen Namen nicht mögen, können Sie ihn mit gulp-rename umbenennen.

+0

Danke für Ihre Antwort, aber ich sehe immer noch die beiden Dateien im Build-Ordner generiert –

+0

Hmmm, ich lief dies ein paar Mal zu überprüfen. Haben Sie Ihren Build-Ordner zuerst gelöscht, um mit einem leeren Fenster zu beginnen? – Mark

+0

Sieht so aus, als ob uglify() die zusätzliche Datei im Ordner build/js erstellt. Weil ich im temp-Ordner die Datei combined.js (keine uglify-Datei) und in build/js combined.min.js (Datei uglify) –

Verwandte Themen