Skip to content

Instantly share code, notes, and snippets.

@rkonno
Last active October 22, 2018 01:46
Show Gist options
  • Save rkonno/c54e0e18bb79c1f9288e72c089d14dab to your computer and use it in GitHub Desktop.
Save rkonno/c54e0e18bb79c1f9288e72c089d14dab to your computer and use it in GitHub Desktop.
gulpfile.js
const gulp = require('gulp');
gulp.task('scripts', () => {
const minify = require('gulp-minify');
return gulp.src('./src/scripts/*.js')
.pipe(minify({
ext:{
min:'.min.js'
},
noSource: true
}))
.pipe(gulp.dest('./dist/assets/js'));
});
gulp.task('styles', () => {
const postcss = require('gulp-postcss');
const sourcemaps = require('gulp-sourcemaps');
const rename = require('gulp-rename');
return gulp.src('./src/styles/*.css')
.pipe(sourcemaps.init())
.pipe(postcss([
require('postcss-import'),
require('postcss-preset-env'),
require('postcss-apply'),
require('postcss-neat'),
require('cssnano')
]))
.pipe(rename({
extname: ".min.css"
}))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./dist/assets/css'));
});
gulp.task('html', () => {
return gulp.src('./src/html/**')
.pipe(gulp.dest('./dist/assets/html'));
});
gulp.task('fonts', () => {
return gulp.src('./src/fonts/**')
.pipe(gulp.dest('./dist/assets/fonts'));
});
gulp.task('images', () => {
const imagemin = require('gulp-imagemin');
return gulp.src('./src/images/**')
.pipe(imagemin())
.pipe(gulp.dest('./dist/assets/images'))
});
gulp.task('vendors', () => {
return gulp.src('./src/vendors/**')
.pipe(gulp.dest('./dist/assets/vendors'));
});
gulp.task('manifest', () => {
return gulp.src('./src/manifest.json')
.pipe( gulp.dest('./dist'));
});
gulp.task('clean', () => {
const del = require('del');
return del(['./dist', './archive.zip'], { force:true });
});
gulp.task('zip', () => {
const zip = require('gulp-zip');
return gulp.src('./dist/**/*', { base: '.' })
.pipe(zip('archive.zip'))
.pipe(gulp.dest('./'));
});
gulp.task('build',
gulp.series(
'clean',
gulp.parallel(
'scripts',
'styles',
'html',
'fonts',
'images',
'vendors',
'manifest'
),
'zip'
)
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment