build-js.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. var path = require('path')
  2. var fs = require('fs')
  3. var babelify = require('babelify')
  4. var chalk = require('chalk')
  5. var mkdirp = require('mkdirp')
  6. var glob = require('glob')
  7. var browserify = require('browserify')
  8. var exec = require('child_process').exec
  9. var exorcist = require('exorcist')
  10. var distPath = './dist'
  11. var srcPath = './src'
  12. function handleErr (err) {
  13. console.error(chalk.red('✗ Error:'), chalk.red(err.message))
  14. }
  15. function buildUppyBundle (minify) {
  16. var src = path.join(srcPath, 'index.js')
  17. var bundleFile = minify ? 'uppy.min.js' : 'uppy.js'
  18. var b = browserify(src, { debug: true, standalone: 'Uppy' })
  19. if (minify) {
  20. b.plugin('minifyify', {
  21. map: bundleFile + '.map',
  22. output: path.join(distPath, bundleFile + '.map')
  23. })
  24. }
  25. b.transform(babelify)
  26. b.on('error', handleErr)
  27. return new Promise(function (resolve, reject) {
  28. if (minify) {
  29. b.bundle()
  30. .pipe(fs.createWriteStream(path.join(distPath, bundleFile), 'utf8'))
  31. .on('error', handleErr)
  32. .on('finish', function () {
  33. console.info(chalk.green('✓ Built Minified Bundle:'), chalk.magenta(bundleFile))
  34. resolve()
  35. })
  36. } else {
  37. b.bundle()
  38. .pipe(exorcist(path.join(distPath, 'uppy.js.map')))
  39. .pipe(fs.createWriteStream(path.join(distPath, bundleFile), 'utf8'))
  40. .on('error', handleErr)
  41. .on('finish', function () {
  42. console.info(chalk.green('✓ Built Bundle:'), chalk.magenta(bundleFile))
  43. resolve()
  44. })
  45. }
  46. })
  47. }
  48. // function buildUppyLocales () {
  49. // mkdirp.sync('./dist/locales')
  50. // glob('./src/locales/*.js', function (err, files) {
  51. // if (err) console.log(err)
  52. // files.forEach(function (file) {
  53. // var fileName = path.basename(file, '.js')
  54. // browserify(file, { debug: true })
  55. // .plugin('minifyify', {
  56. // map: fileName + '.min.js.map',
  57. // output: './dist/locales/' + fileName + '.min.js.map'
  58. // })
  59. // // .transform(rollupify)
  60. // .transform(babelify)
  61. // .on('error', handleErr)
  62. // .bundle()
  63. // .pipe(fs.createWriteStream('./dist/locales/' + fileName + '.min.js', 'utf8'))
  64. // .on('error', handleErr)
  65. // .on('finish', function () {
  66. // console.info(chalk.green('✓ Built Locale:'), chalk.magenta(fileName + '.min.js'))
  67. // })
  68. // })
  69. // })
  70. // }
  71. mkdirp.sync(distPath)
  72. Promise.all([buildUppyBundle(), buildUppyBundle(true)])
  73. .then(function () {
  74. console.info(chalk.yellow('✓ JS Bundle 🎉'))
  75. })