theme/gulpfile.js

58 lines
1.4 KiB
JavaScript

const gulp = require('gulp');
const sass = require('gulp-sass');
const sourcemaps = require('gulp-sourcemaps');
const tar = require('gulp-tar-path');
const gzip = require('gulp-gzip');
const clean = require('gulp-clean');
const cleanCSS = require('gulp-clean-css');
const hash = require('gulp-hash-filename');
const replace = require('gulp-replace');
const sources = [
'archetypes',
'i18n',
'layouts',
'static',
'DCO',
'LICENSE',
'README.md',
'theme.toml'
];
gulp.task('default', ['sass']);
gulp.task('prod', ['sass-prod'])
gulp.task('release', () => {
return gulp.src(sources)
.pipe(tar('master.tar'))
.pipe(gzip())
.pipe(gulp.dest('dist'))
});
gulp.task('sass', () => {
return gulp.src('./src/main.scss')
.pipe(sourcemaps.init())
.pipe(sass().on('error', sass.logError))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./static/styles'));
});
gulp.task('sass-prod', () => {
return gulp.src('./src/main.scss')
.pipe(sourcemaps.init())
.pipe(sass().on('error', sass.logError))
.pipe(cleanCSS())
.pipe(replace('../static', '..'))
.pipe(hash())
.pipe(gulp.dest('./static/styles'));
})
gulp.task('clean', () => {
return gulp.src(['dist', 'static/styles'])
.pipe(clean());
});
gulp.task('watch', () => {
return gulp.watch('./src/*.scss', ['sass']);
});