50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
'use strict'
|
|
|
|
const fs = require('fs')
|
|
const gulp = require('gulp')
|
|
const _less = require('less')
|
|
const less = require('gulp-less')
|
|
const sourcemaps = require('gulp-sourcemaps')
|
|
const rename = require('gulp-rename')
|
|
const mkdirp = require('mkdirp')
|
|
|
|
const postcss = require('gulp-postcss')
|
|
const autoprefixer = require('autoprefixer')
|
|
|
|
const config = require('../config').less
|
|
|
|
|
|
const errorHandler = require('../util/error-handler')
|
|
|
|
_less.functions.functionRegistry.addMultiple(config.functions)
|
|
|
|
const processors = [
|
|
autoprefixer(config.autoprefixer),
|
|
]
|
|
|
|
if (ENV === 'production') {
|
|
const csswring = require('csswring')
|
|
|
|
processors.push(csswring(config.csswring))
|
|
}
|
|
|
|
const suffix = config.suffix && ENV === 'production' ? '-' + Date.now().toString(16) : undefined
|
|
|
|
gulp.task('less', function () {
|
|
mkdirp(config.dest)
|
|
|
|
if (suffix)
|
|
fs.writeFile(config.dest + '.json', JSON.stringify({ suffix }))
|
|
|
|
let pipe = gulp.src(config.src)
|
|
.pipe(sourcemaps.init())
|
|
.pipe(less(config.options).on('error', errorHandler))
|
|
.pipe(postcss(processors))
|
|
|
|
if (suffix)
|
|
pipe = pipe.pipe(rename({ suffix }))
|
|
|
|
return pipe.pipe(sourcemaps.write('./maps'))
|
|
.pipe(gulp.dest(config.dest))
|
|
})
|