gzip.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. var path = require('path')
  2. var chalk = require('chalk')
  3. var glob = require('glob')
  4. var exec = require('child_process').exec
  5. function handleErr (err) {
  6. console.error(chalk.red('✗ Error:'), chalk.red(err.message))
  7. }
  8. function gzip (file) {
  9. return new Promise(function (resolve, reject) {
  10. var fileName = path.basename(file)
  11. var gzipCommand = 'gzip < ' + file + ' > ' + file + '.gz'
  12. exec(gzipCommand, function (error, stdout, stderr) {
  13. if (error) {
  14. handleErr(error)
  15. reject(error)
  16. return
  17. }
  18. console.info(chalk.green('✓ Gzipped: '), chalk.magenta(fileName + '.gz'))
  19. resolve()
  20. })
  21. })
  22. }
  23. function gzipDist () {
  24. return new Promise(function (resolve) {
  25. glob('./dist/**/*.*(css|js)', function (err, files) {
  26. if (err) console.log(err)
  27. var gzipPromises = []
  28. files.forEach(function (file) {
  29. gzipPromises.push(gzip(file))
  30. })
  31. return Promise.all(gzipPromises).then(function () {
  32. console.info(chalk.yellow('✓ Gzipped everything yo 🎉'))
  33. resolve()
  34. })
  35. })
  36. })
  37. }
  38. gzipDist()