hexo-theme-sb
Version:
Clean and simple theme for Hexo blog framework
71 lines (62 loc) • 3.43 kB
JavaScript
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))