Advertisement
puggan

bb/gulpfile.js

Dec 10th, 2018
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. "use strict";
  2.  
  3. var gulp = require('gulp');
  4. var rename = require("gulp-rename");
  5. var ignore = require('gulp-ignore');
  6. var plumber = require('gulp-plumber');
  7. var babel = require('gulp-babel');
  8. var concat = require('gulp-concat');
  9. var chmod = require('gulp-chmod');
  10.  
  11. var map = require('gulp-sourcemaps');
  12. var gulpSequence = require('gulp-sequence');
  13.  
  14. var less = require('gulp-less');
  15. var uglifycss = require('gulp-cssnano');
  16.  
  17. var ts = require('gulp-typescript');
  18. var uglifyjs = require('gulp-uglify');
  19.  
  20. gulp.task('default', ['css', 'pages', 'scripts']);
  21. gulp.task('scripts', gulpSequence(['ts', 'babel'], 'js'));
  22. gulp.task('pages', ['pages-css', 'pages-babel', 'pages-ts']);
  23.  
  24. //region Task Less/CSS
  25. gulp.task(
  26.     'css',
  27.     () => gulp
  28.         .src("less/style.less")
  29.         .pipe(plumber())
  30.         .pipe(map.init())
  31.  
  32.         .pipe(less())
  33.         .pipe(rename('style.css'))
  34.         .pipe(map.write('./'))
  35.         .pipe(chmod(0o644))
  36.         .pipe(gulp.dest("build/"))
  37.         .pipe(ignore.exclude('*.map'))
  38.  
  39.         .pipe(uglifycss())
  40.         .pipe(rename('style.min.css'))
  41.         .pipe(map.write('./'))
  42.         .pipe(chmod(0o644))
  43.         .pipe(gulp.dest("build/"))
  44. );
  45. //endregion
  46.  
  47. //region Task Less/CSS for pages
  48. gulp.task(
  49.     'pages-css',
  50.     () => gulp
  51.         .src('less/pages/*.less')
  52.         .pipe(plumber())
  53.         .pipe(map.init({loadMaps: true}))
  54.  
  55.         .pipe(less())
  56.         .pipe(map.write('./'))
  57.         .pipe(chmod(0o644))
  58.         .pipe(gulp.dest('../../public/build/pages/'))
  59.         .pipe(ignore.exclude('*.map'))
  60.  
  61.         .pipe(uglifycss())
  62.         .pipe(rename({ suffix: '.min' }))
  63.         .pipe(map.write('./'))
  64.         .pipe(chmod(0o644))
  65.         .pipe(gulp.dest('../../public/build/pages/'))
  66. );
  67. //endregion
  68.  
  69. //region Task Typescript
  70. gulp.task(
  71.     'ts',
  72.     () => gulp
  73.         .src(['ts/*.ts', '!ts/*.d.ts'])
  74.         .pipe(plumber())
  75.         .pipe(map.init())
  76.         .pipe(ts({"target": "ES5"}))
  77.         .pipe(map.write('./'))
  78.         .pipe(chmod(0o644))
  79.         .pipe(gulp.dest('js/ts/'))
  80. );
  81. //endregion
  82.  
  83. //region Task Typescript for pages
  84. gulp.task(
  85.     'pages-ts',
  86.     () => gulp
  87.         .src(['js/pages/*.ts', '!js/pages/*.d.ts'])
  88.         .pipe(plumber())
  89.         .pipe(map.init())
  90.         .pipe(ts({"target": "ES5"}))
  91.         .pipe(map.write('./'))
  92.         .pipe(chmod(0o644))
  93.         .pipe(gulp.dest('../../public/build/pages/'))
  94.         .pipe(ignore.exclude('*.map'))
  95.  
  96.         .pipe(uglifyjs())
  97.         .pipe(rename({ suffix: '.min' }))
  98.         .pipe(map.write('./'))
  99.         .pipe(chmod(0o644))
  100.         .pipe(gulp.dest('../../public/build/pages/'))
  101. );
  102. //endregion
  103.  
  104. //region Task ES6/babel
  105. gulp.task(
  106.     'babel',
  107.     () => gulp
  108.         .src([
  109.             'js/app/**/*.js',
  110.             'js/user/**/*.js'
  111.         ])
  112.         .pipe(plumber())
  113.         .pipe(map.init({loadMaps: true}))
  114.         .pipe(concat('babeled.js'))
  115.  
  116.         .pipe(babel({
  117.             compact: false,
  118.             presets: [['@babel/env', {
  119.                 "targets": {
  120.                     "browsers": [">0.25%"]
  121.                 }
  122.             }]]
  123.         }))
  124.  
  125.         .pipe(map.write('./'))
  126.         .pipe(chmod(0o644))
  127.         .pipe(gulp.dest("build/"))
  128. );
  129. //endregion
  130.  
  131. //region Task ES6/Babel for pages
  132. gulp.task(
  133.     'pages-babel',
  134.     () => gulp
  135.         .src('js/pages/*.js')
  136.         .pipe(plumber())
  137.         .pipe(map.init({loadMaps: true}))
  138.  
  139.         .pipe(babel({
  140.             compact: false,
  141.             presets: [['@babel/env', {
  142.                 "targets": {
  143.                     "browsers": [">0.25%"]
  144.                 }
  145.             }]]
  146.         }))
  147.  
  148.         .pipe(map.write('./'))
  149.         .pipe(chmod(0o644))
  150.         .pipe(gulp.dest('../../public/build/pages/'))
  151.         .pipe(ignore.exclude('*.map'))
  152.  
  153.         .pipe(uglifyjs())
  154.         .pipe(rename({ suffix: '.min' }))
  155.         .pipe(map.write('./'))
  156.         .pipe(chmod(0o644))
  157.         .pipe(gulp.dest('../../public/build/pages/'))
  158. );
  159. //endregion
  160.  
  161. //region Task Concat javascripts
  162. gulp.task(
  163.     'js',
  164.     () => gulp
  165.         .src([
  166.             "js/components/jquery.js",
  167.             "js/components/jquery.ui/widget.js",
  168.             "js/components/jquery.ui/mouse.js",
  169.             'js/components/**/*.js',
  170.             'js/ts/**/*.js',
  171.             'build/babeled.js'
  172.         ])
  173.         .pipe(plumber())
  174.         .pipe(map.init({loadMaps: true}))
  175.         .pipe(concat('app.js'))
  176.  
  177.         .pipe(map.write('./'))
  178.         .pipe(chmod(0o644))
  179.         .pipe(gulp.dest("build/"))
  180.         .pipe(ignore.exclude('*.map'))
  181.  
  182.         .pipe(uglifyjs())
  183.         .pipe(rename('app.min.js'))
  184.         .pipe(map.write('./'))
  185.         .pipe(chmod(0o644))
  186.         .pipe(gulp.dest("build/"))
  187. );
  188. //endregion
  189.  
  190. //region Watch(er) task
  191. gulp.task('watch', gulpSequence('default', 'watching'));
  192.  
  193. gulp.task('watching', function() {
  194.     gulp.watch(['less/*.less', 'less/*/*.less', 'less/*/*.css'] , ['css']);
  195.     gulp.watch(['js/components/**/*.js'] , ['js']);
  196.     gulp.watch(['js/app/**/*.js', 'js/user/**/*.js'] , gulpSequence('babel', 'js'));
  197.     gulp.watch(['ts/**/*.ts'] , gulpSequence('ts', 'js'));
  198.     gulp.watch(['js/pages/*.ts'] , ['pages-ts']);
  199.     gulp.watch(['js/pages/*.js'] , ['pages-babel']);
  200. });
  201. //endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement