A simple file sharing site with an easy to use API and online panel.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

76 lines
1.8KB

  1. 'use strict';
  2. const gulp = require('gulp');
  3. const gutil = require('gutil');
  4. const watchify = require('watchify');
  5. const browserify = require('browserify');
  6. const source = require('vinyl-source-stream');
  7. const buffer = require('vinyl-buffer');
  8. const rename = require('gulp-rename');
  9. const uglify = require('gulp-uglify-es').default;
  10. const es = require('event-stream');
  11. const cleanCSS = require('gulp-clean-css');
  12. const nodemon = require('gulp-nodemon');
  13. const sourcemaps = require('gulp-sourcemaps');
  14. const path = require('path');
  15. const glob = require('glob');
  16. let jsFiles = {
  17. src: [
  18. glob.sync('app/public/services/*.js'),
  19. glob.sync('app/public/panel/**/*.js'),
  20. glob.sync('app/public/shimapan/**/*.js'),
  21. ],
  22. dest: 'shimapan.bundle.js'
  23. };
  24. let staticJs = [{
  25. src: 'app/public/index/typegraph.js',
  26. dest: 'typegraph.min.js'
  27. }];
  28. const bundler = () =>
  29. browserify({
  30. entries: jsFiles.src,
  31. debug: true,
  32. cache: {},
  33. packageCache: {}
  34. });
  35. const watcher = watchify(bundler());
  36. watcher.on('log', gutil.log);
  37. const bundle = pkg =>
  38. pkg.bundle()
  39. .pipe(source(jsFiles.dest))
  40. .pipe(buffer())
  41. .pipe(sourcemaps.init({loadMaps: true}))
  42. .pipe(uglify())
  43. .pipe(sourcemaps.write('./'))
  44. .pipe(gulp.dest('public/js'));
  45. gulp.task('build', () => bundle(bundler()));
  46. gulp.task('watch', () => {
  47. bundle(watcher);
  48. watcher.on('update', () => bundle(watcher));
  49. });
  50. gulp.task('minify', () => {
  51. const tasks = staticJs.map(file =>
  52. gulp.src(file.src)
  53. .pipe(rename(file.dest))
  54. .pipe(buffer())
  55. .pipe(sourcemaps.init({loadMaps: true}))
  56. .pipe(uglify())
  57. .pipe(sourcemaps.write('./')));
  58. return es.merge(tasks)
  59. .pipe(gulp.dest('public/js'));
  60. });
  61. gulp.task('default', gulp.parallel('build', 'minify'));