task.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. var path = require('path')
  2. var fs = require('fs')
  3. var gulp = require('gulp')
  4. var ora = require('ora')
  5. var nop = require('gulp-nop')
  6. var sass = require('gulp-sass')
  7. var autoprefixer = require('gulp-autoprefixer')
  8. var cssmin = require('gulp-cssmin')
  9. var config = require('./config')
  10. exports.fonts = function (opts) {
  11. var spin = ora(opts.message).start()
  12. var stream = gulp.src(path.resolve(config.themePath, './src/fonts/**'))
  13. .pipe((opts.minimize || config.minimize) ? cssmin({showLog: false}) : nop())
  14. .pipe(gulp.dest(path.resolve(opts.out || config.out, './fonts')))
  15. .on('end', function () {
  16. spin.succeed()
  17. })
  18. return stream
  19. }
  20. exports.build = function (opts) {
  21. var spin = ora(opts.message).start()
  22. var stream
  23. var components
  24. var cssFiles = '*'
  25. if (config.components) {
  26. components = config.components.concat(['base'])
  27. cssFiles = '{' + components.join(',') + '}'
  28. }
  29. var varsPath = path.resolve(config.themePath, './src/common/var.scss')
  30. fs.writeFileSync(varsPath, fs.readFileSync(path.resolve(process.cwd(), opts.config || config.config)), 'utf-8')
  31. stream = gulp.src([opts.config || config.config, path.resolve(config.themePath, './src/' + cssFiles + '.scss')])
  32. .pipe(sass.sync())
  33. .pipe(autoprefixer({
  34. browsers: config.browsers,
  35. cascade: false
  36. }))
  37. .pipe((opts.minimize || config.minimize) ? cssmin({showLog: false}) : nop())
  38. .pipe(gulp.dest(opts.out || config.out))
  39. .on('end', function () {
  40. spin.succeed()
  41. })
  42. return stream
  43. }