gulpfile.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. require('es6-promise').polyfill();
  2. var gulp = require('gulp');
  3. var browserify = require('browserify');
  4. var concatCss = require('gulp-concat-css');
  5. var minifyCss = require('gulp-minify-css');
  6. var sass = require('gulp-sass');
  7. var uglify = require('gulp-uglify');
  8. var buffer = require('vinyl-buffer');
  9. var source = require('vinyl-source-stream');
  10. var sourcemaps = require('gulp-sourcemaps');
  11. var merge = require('merge-stream');
  12. var postcss = require('gulp-postcss');
  13. var pxtorem = require('postcss-pxtorem');
  14. var autoprefixer = require('autoprefixer');
  15. var cssProcessors = [
  16. autoprefixer(),
  17. pxtorem({
  18. rootValue: 14,
  19. replace: false,
  20. propWhiteList: []
  21. })
  22. ];
  23. gulp.task('js', function() {
  24. browserify('./jet/static/jet/js/src/main.js')
  25. .bundle()
  26. .on('error', function(error) {
  27. console.error(error);
  28. })
  29. .pipe(source('bundle.min.js'))
  30. .pipe(buffer())
  31. .pipe(uglify())
  32. .pipe(gulp.dest('./jet/static/jet/js/build/'));
  33. });
  34. gulp.task('vendor-css', function() {
  35. merge(
  36. gulp.src([
  37. './node_modules/select2/dist/css/select2.css',
  38. './node_modules/jquery-ui/themes/base/all.css',
  39. './node_modules/timepicker/jquery.ui.timepicker.css'
  40. ]),
  41. gulp.src([
  42. './node_modules/perfect-scrollbar/src/css/main.scss'
  43. ])
  44. .pipe(sass())
  45. .on('error', function(error) {
  46. console.error(error);
  47. })
  48. )
  49. .pipe(postcss(cssProcessors))
  50. .on('error', function(error) {
  51. console.error(error);
  52. })
  53. .pipe(minifyCss())
  54. .on('error', function(error) {
  55. console.error(error);
  56. })
  57. .pipe(concatCss('vendor.css'))
  58. .on('error', function(error) {
  59. console.error(error);
  60. })
  61. .pipe(gulp.dest('./jet/static/jet/css'));
  62. });
  63. gulp.task('scss', function() {
  64. gulp.src('./jet/static/jet/css/**/*.scss')
  65. .pipe(sourcemaps.init())
  66. .pipe(sass())
  67. .on('error', function(error) {
  68. console.error(error);
  69. })
  70. .pipe(postcss(cssProcessors))
  71. .on('error', function(error) {
  72. console.error(error);
  73. })
  74. .pipe(sourcemaps.write('./'))
  75. .pipe(gulp.dest('./jet/static/jet/css'));
  76. });
  77. gulp.task('watch', function() {
  78. gulp.watch('./jet/static/jet/js/src/**/*.js', ['js']);
  79. gulp.watch('./jet/static/jet/css/**/*.scss', ['scss']);
  80. });
  81. gulp.task('default', ['js', 'scss', 'vendor-css', 'watch']);