build-js.js 1.6 KB

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