riot-starter/gulpfile.js

57 lines
1.5 KiB
JavaScript
Raw Normal View History

2018-03-22 20:37:34 +00:00
'use strict';
2018-04-01 07:19:55 +00:00
const gulp = require('gulp'),
2018-11-09 22:30:06 +00:00
riot = require('gulp-riot'),
concat = require('gulp-concat'),
minify = require('gulp-minify'),
cssmin = require('gulp-clean-css'),
ref = require('gulp-useref');
2018-03-22 20:37:34 +00:00
// build riotjs tags (components)
2018-11-09 22:30:06 +00:00
gulp.task('tags', () => {
return gulp.src('./src/public/views/**/*.tag.html')
2018-03-22 20:37:34 +00:00
.pipe(concat('tags.js'))
.pipe(riot({compact: true, whitespace: false}))
.pipe(minify())
.pipe(gulp.dest('./dist/js'))
});
// combine javascript files
2018-11-09 22:30:06 +00:00
gulp.task('javascript', () => {
return gulp.src('./src/public/js/**/*.js')
2018-03-22 20:37:34 +00:00
.pipe(concat('combined.js'))
2018-11-09 22:30:06 +00:00
.pipe(minify())
2018-03-22 20:37:34 +00:00
.pipe(gulp.dest('./dist/js'))
});
// move fonts
2018-11-09 22:30:06 +00:00
gulp.task('fonts', () => {
return gulp.src('./src/public/fonts/**/*.ttf')
2018-03-22 20:37:34 +00:00
.pipe(gulp.dest('./dist/fonts'))
});
// move images
// TODO: minimize
2018-11-09 22:30:06 +00:00
gulp.task('images', () => {
return gulp.src('./src/public/images/**/*')
2018-03-22 20:37:34 +00:00
.pipe(gulp.dest('./dist/img'))
});
// combine css
2018-11-09 22:30:06 +00:00
gulp.task('css', () => {
return gulp.src('css/*.css')
2018-03-22 20:37:34 +00:00
.pipe(concat('styles.css'))
.pipe(cssmin())
.pipe(gulp.dest('./dist/css'))
});
// build everything for production distribution
2018-11-09 22:30:06 +00:00
gulp.task('build', gulp.series('tags', 'javascript', 'css', 'fonts', 'images'), () => {
return gulp.src(['./src/public/index.html'])
2018-03-22 20:37:34 +00:00
.pipe(ref())
.pipe(gulp.dest('./dist'))
});
2018-11-09 22:30:06 +00:00
// create task
gulp.task('default', gulp.series('build'), () => {});