fediverse-export-analyzer/gulpfile.cjs

76 wiersze
2.4 KiB
JavaScript

const autoprefixer = require('gulp-autoprefixer');
const babel = require('gulp-babel');
const babelify = require('babelify');
const browserify = require('browserify');
const clean = require('gulp-clean');
const concat = require('gulp-concat');
const fs = require('fs');
const gulp = require('gulp');
const gutil = require('gulp-util');
const jshint = require('gulp-jshint');
const less = require('gulp-less');
const merge = require('merge-stream');
const minifycss = require('gulp-minify-css');
const path = require('path');
const rename = require('gulp-rename');
const sass = require('gulp-sass')(require('node-sass'));
const source = require('vinyl-source-stream');
const sourcemaps = require('gulp-sourcemaps');
const streamify = require('gulp-streamify');
const stylish = require('jshint-stylish');
const uglify = require('gulp-uglify');
function swallowError(error) {
console.log(error.toString());
this.emit('end');
}
function compileStyles(){
return gulp.src('src/styles/*.scss')
.pipe(sass({
paths: [ path.join(__dirname, 'scss', 'includes') ]
}))
.on('error', swallowError)
.pipe(autoprefixer('last 3 version', 'android >= 3', { cascade: true }))
.on('error', swallowError)
.pipe(gulp.dest('public/css/', { mode: 0o777 }))
.pipe(rename({ suffix: '.min' }))
.pipe(minifycss())
.on('error', swallowError)
.pipe(gulp.dest('public/css/', { mode: 0o777 }))
// .pipe(reload({stream:true}));
}
function compileScripts(){
return gulp.src('src/scripts/**/*.js')
.pipe(sourcemaps.init({compress: false}))
// .pipe(babel({
// presets: ['@babel/preset-env']
// }))
.on('error', swallowError)
// .pipe(concat('scripts.js'))
.pipe(uglify())
.pipe(rename({suffix: '.min'}))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('public/js', {mode: 0o777}));
}
function watch(){
gulp.watch('./src/styles/**/*.*', gulp.series('styles'));
gulp.watch('./src/scripts/**/*.*', gulp.series('jslint', 'scripts'));
}
function jslint(){
return gulp.src('src/scripts/**/*.js')
.pipe(jshint('tests/.jshintrc'))
.on('error', gutil.noop)
.pipe(jshint.reporter(stylish))
.on('error', swallowError);
}
gulp.task('styles', gulp.series(compileStyles));
gulp.task('scripts', gulp.series(compileScripts));
gulp.task('jslint', gulp.series(jslint));
gulp.task('watch', gulp.series(watch));
gulp.task('default', gulp.series('styles', 'scripts', 'watch'));