//// Constantes // Ressources plugins const gulp = require('gulp'), minifycss = require('gulp-clean-css'), uglify = require('gulp-uglify'), concat = require('gulp-concat'); //// Fonctions / sous tâches // Copier les ressources dans le nouveau dossier gulp.task('copy-assets', function() { return gulp.src( [ // On copie tout... 'src/**/*.*', // sauf le css, qui sera copié via minify css '!src/css/**/*.css', // sauf le js, qui sera copié via uglify js '!src/js/**/*.js' ] ) // On met dans le tuyau (c'est comme ça, chut) // On envoie les fichiers dans le dossier build/ .pipe(gulp.dest('build/')); }); // Minifier le css // https://www.npmjs.com/package/gulp-clean-css gulp.task('minify-css', function() { return gulp.src('src/css/**/*.css') // on minifie l'ensemble des fichiers .pipe(minifycss()) // on les regroupe en un seul .pipe(concat('main.css')) .pipe(gulp.dest('build/css/')); }); // Minifier le js gulp.task('minify-js', function () { return gulp.src('src/js/**/*.js') // on minifie l'ensemble des fichiers .pipe(uglify()) // on les regroupe en un seul .pipe(concat('main.js')) .pipe(gulp.dest('build/js/')); }); //// Tâches // Fonction par défaut, appelée dans la console en tapant 'gulp' // Le premier paramètre est le nom de la tâche // Cette tâche appelle chaque tâche contenue dans le tableau passé en 2eme paramètre // La tâche par défaut appelle la tâche copy-assets, ainsi que la tâche minifier le css gulp.task('default', [ 'copy-assets', 'minify-css', 'minify-js']);