gulpfile.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. var gulp = require('gulp')
  2. var minifycss = require('gulp-minify-css')
  3. var less = require('gulp-less')
  4. var path = require('path')
  5. var fs = require('fs')
  6. var changed = require('gulp-changed');
  7. var notify = require('gulp-notify');
  8. var merge = require('merge-stream')
  9. var plumber = require('gulp-plumber')
  10. var rename = require('gulp-rename')
  11. var yargs = require('yargs')
  12. var DIST = 'src/pages'
  13. function getFile(type){
  14. if (typeof type !== 'string') return;
  15. var filePath = fs.readdirSync(path.resolve('./src/pages'))
  16. var fileArr = []
  17. filePath.forEach(function(item){
  18. var pagePath = path.join('./src/pages',item)
  19. var pageFiles = fs.readdirSync(pagePath)
  20. pageFiles.forEach(function(v) {
  21. var lastPath = path.join(pagePath,v,v + '.'+ type)
  22. fileArr.push(lastPath.split('\\').join('/'))
  23. })
  24. })
  25. return fileArr
  26. }
  27. var files = getFile('less');
  28. gulp.task('less', function () {
  29. var tasks = files.map(function(item){
  30. return gulp.src('./'+ item)
  31. .pipe(changed(DIST))
  32. .pipe(less())
  33. .pipe(gulp.dest(path.join(item,'..')))
  34. .pipe(minifycss())
  35. .pipe(gulp.dest(path.join(item,'..')))
  36. })
  37. return merge(...tasks)
  38. })
  39. gulp.task('changeFileName',['less'],function(){
  40. var files = getFile('css')
  41. var tasks = files.map(function(v){
  42. return gulp.src(v)
  43. .pipe(changed(DIST))
  44. .pipe(rename(function(path){
  45. path.extname = ".wxss"
  46. }))
  47. .pipe(gulp.dest(path.join(v,'..')))
  48. })
  49. return merge(...tasks)
  50. })
  51. gulp.watch('src/pages/**/**/*.less',['less','changeFileName'])
  52. gulp.task('default',['less','changeFileName']);