build-js.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. var path = require('path')
  2. var fs = require('fs')
  3. var chalk = require('chalk')
  4. var mkdirp = require('mkdirp')
  5. var babelify = require('babelify')
  6. var tinyify = require('tinyify')
  7. var browserify = require('browserify')
  8. var exorcist = require('exorcist')
  9. var distPath = './packages/uppy/dist'
  10. var srcPath = './packages/uppy'
  11. function handleErr (err) {
  12. console.error(chalk.red('✗ Error:'), chalk.red(err.message))
  13. }
  14. function buildUppyBundle (minify) {
  15. var src = path.join(srcPath, 'bundle.js')
  16. var bundleFile = minify ? 'uppy.min.js' : 'uppy.js'
  17. var b = browserify(src, { debug: true, standalone: 'Uppy' })
  18. if (minify) {
  19. b.plugin(tinyify)
  20. }
  21. b.transform(babelify)
  22. b.on('error', handleErr)
  23. return new Promise(function (resolve, reject) {
  24. b.bundle()
  25. .pipe(exorcist(path.join(distPath, bundleFile + '.map')))
  26. .pipe(fs.createWriteStream(path.join(distPath, bundleFile), 'utf8'))
  27. .on('error', handleErr)
  28. .on('finish', function () {
  29. if (minify) {
  30. console.info(chalk.green('✓ Built Minified Bundle:'), chalk.magenta(bundleFile))
  31. } else {
  32. console.info(chalk.green('✓ Built Bundle:'), chalk.magenta(bundleFile))
  33. }
  34. resolve()
  35. })
  36. })
  37. }
  38. mkdirp.sync(distPath)
  39. Promise.all([buildUppyBundle(), buildUppyBundle(true)])
  40. .then(function () {
  41. console.info(chalk.yellow('✓ JS Bundle 🎉'))
  42. })