Το Gulp είναι ένας εκτελεστής εργασιών ροής για το Node.js που αυτοματοποιεί τις ροές εργασίας ανάπτυξης.
Κοινά Πρόσθετα (Common Plugins)
gulp-sass: SASS / SCSS compilergulp-autoprefixer: Prefix CSS with vendor propertiesgulp-clean-css: CSS minifiergulp-jshint/gulp-eslint: JavaScript lintergulp-concat: Concatenate files into single bundlesgulp-uglify: JavaScript minifiergulp-imagemin: Optimize image filesgulp-rename: Rename files with prefixes or suffixesgulp-notify: Desktop notifications on build completion
Πλήρες παράδειγμα gulpfile.js
// gulpfile.js
const gulp = require('gulp');
const sass = require('gulp-sass')(require('sass'));
const autoprefixer = require('gulp-autoprefixer');
const cleanCSS = require('gulp-clean-css');
const jshint = require('gulp-jshint');
const uglify = require('gulp-uglify');
const rename = require('gulp-rename');
const concat = require('gulp-concat');
// Styles Task: Compile SCSS, Autoprefix, Minify
gulp.task('styles', function () {
return gulp.src('src/styles/main.scss')
.pipe(sass().on('error', sass.logError))
.pipe(autoprefixer({ overrideBrowserslist: ['last 2 versions'] }))
.pipe(gulp.dest('dist/styles'))
.pipe(rename({ suffix: '.min' }))
.pipe(cleanCSS())
.pipe(gulp.dest('dist/styles'));
});
// Scripts Task: Lint, Concatenate, Uglify
gulp.task('scripts', function () {
return gulp.src('src/scripts/**/*.js')
.pipe(jshint())
.pipe(concat('main.js'))
.pipe(gulp.dest('dist/scripts'))
.pipe(rename({ suffix: '.min' }))
.pipe(uglify())
.pipe(gulp.dest('dist/scripts'));
});
// Watch & Default Task
gulp.task('watch', function () {
gulp.watch('src/styles/**/*.scss', gulp.series('styles'));
gulp.watch('src/scripts/**/*.js', gulp.series('scripts'));
});
gulp.task('default', gulp.parallel('styles', 'scripts'));