UNPKG

hexo-theme-sb

Version:

Clean and simple theme for Hexo blog framework

71 lines (62 loc) 3.43 kB
const gulp = require('gulp') const eslint = require('gulp-eslint') const gutil = require('gulp-util') const babel = require('gulp-babel') const include = require('gulp-include') const sourcemaps = require('gulp-sourcemaps') const uglify = require('gulp-uglify') const rename = require('gulp-rename') const standard = require('gulp-standard') const runSequence = require('run-sequence') gulp.task('js:build', () => gulp.src(`${global.config.root + global.config.js.src}**/*.js`) .pipe(sourcemaps.init()) .pipe(eslint(global.config.js.eslintConfig)) .pipe(include(global.config.js.includeConfig)) .pipe(eslint.format()) .pipe(eslint.failAfterError()) .pipe(eslint.result((result) => { gutil.log(gutil.colors.blue(`ESLint result: ${result.filePath}`)) gutil.log(gutil.colors.green(`# Messages: ${result.messages.length}`)) gutil.log(gutil.colors.yellow(`# Warnings: ${result.warningCount}`)) gutil.log(gutil.colors.red(`# Errors: ${result.errorCount}`)) })) .pipe(babel(global.config.js.babelConfig)) .on('error', (err) => { gutil.log(gutil.colors.red('[Error]'), err.toString()) }) .pipe(sourcemaps.write(global.config.root)) .pipe(gulp.dest(global.config.root + global.config.dest + global.config.js.dest))) gulp.task('js:standard', () => gulp.src(`${global.config.root + global.config.js.src}**/*.js`) .pipe(standard()) .pipe(standard.reporter('default', global.config.js.standardConfig))) gulp.task('js:uglify', () => gulp.src([`${global.config.root + global.config.dest + global.config.js.dest}**/*.js`, `!${global.config.root + global.config.dest + global.config.js.dest}**/*.min.js`]) .pipe(sourcemaps.init()) .pipe(uglify()) .pipe(rename(global.config.js.renameConfig)) .pipe(sourcemaps.write(global.config.root)) .pipe(gulp.dest(global.config.root + global.config.dest + global.config.js.dest))) gulp.task('js', callback => runSequence('js:build', 'js:standard', 'js:uglify', callback)) gulp.task('js:build:deploy', () => gulp.src(`${global.config.root + global.config.js.src}**/*.js`) .pipe(eslint(global.config.js.eslintConfig)) .pipe(include(global.config.js.includeConfig)) .pipe(eslint.format()) .pipe(eslint.failAfterError()) .pipe(eslint.result((result) => { gutil.log(gutil.colors.blue(`ESLint result: ${result.filePath}`)) gutil.log(gutil.colors.green(`# Messages: ${result.messages.length}`)) gutil.log(gutil.colors.yellow(`# Warnings: ${result.warningCount}`)) gutil.log(gutil.colors.red(`# Errors: ${result.errorCount}`)) })) .pipe(babel(global.config.js.babelConfig)) .on('error', (err) => { gutil.log(gutil.colors.red('[Error]'), err.toString()) }) .pipe(gulp.dest(global.config.root + global.config.dest + global.config.js.dest))) gulp.task('js:standard:deploy', () => gulp.src(`${global.config.root + global.config.js.src}**/*.js`) .pipe(standard()) .pipe(standard.reporter('default', global.config.js.standardConfig))) gulp.task('js:uglify:deploy', () => gulp.src([`${global.config.root + global.config.dest + global.config.js.dest}**/*.js`, `!${global.config.root + global.config.dest + global.config.js.dest}**/*.min.js`]) .pipe(uglify()) .pipe(rename(global.config.js.renameConfig)) .pipe(gulp.dest(global.config.root + global.config.dest + global.config.js.dest))) gulp.task('js:deploy', callback => runSequence('js:build:deploy', 'js:standard:deploy', 'js:uglify:deploy', callback))