Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict";
- var gulp = require('gulp');
- var rename = require("gulp-rename");
- var ignore = require('gulp-ignore');
- var plumber = require('gulp-plumber');
- var babel = require('gulp-babel');
- var concat = require('gulp-concat');
- var chmod = require('gulp-chmod');
- var map = require('gulp-sourcemaps');
- var gulpSequence = require('gulp-sequence');
- var less = require('gulp-less');
- var uglifycss = require('gulp-cssnano');
- var ts = require('gulp-typescript');
- var uglifyjs = require('gulp-uglify');
- gulp.task('default', ['css', 'pages', 'scripts']);
- gulp.task('scripts', gulpSequence(['ts', 'babel'], 'js'));
- gulp.task('pages', ['pages-css', 'pages-babel', 'pages-ts']);
- //region Task Less/CSS
- gulp.task(
- 'css',
- () => gulp
- .src("less/style.less")
- .pipe(plumber())
- .pipe(map.init())
- .pipe(less())
- .pipe(rename('style.css'))
- .pipe(map.write('./'))
- .pipe(chmod(0o644))
- .pipe(gulp.dest("build/"))
- .pipe(ignore.exclude('*.map'))
- .pipe(uglifycss())
- .pipe(rename('style.min.css'))
- .pipe(map.write('./'))
- .pipe(chmod(0o644))
- .pipe(gulp.dest("build/"))
- );
- //endregion
- //region Task Less/CSS for pages
- gulp.task(
- 'pages-css',
- () => gulp
- .src('less/pages/*.less')
- .pipe(plumber())
- .pipe(map.init({loadMaps: true}))
- .pipe(less())
- .pipe(map.write('./'))
- .pipe(chmod(0o644))
- .pipe(gulp.dest('../../public/build/pages/'))
- .pipe(ignore.exclude('*.map'))
- .pipe(uglifycss())
- .pipe(rename({ suffix: '.min' }))
- .pipe(map.write('./'))
- .pipe(chmod(0o644))
- .pipe(gulp.dest('../../public/build/pages/'))
- );
- //endregion
- //region Task Typescript
- gulp.task(
- 'ts',
- () => gulp
- .src(['ts/*.ts', '!ts/*.d.ts'])
- .pipe(plumber())
- .pipe(map.init())
- .pipe(ts({"target": "ES5"}))
- .pipe(map.write('./'))
- .pipe(chmod(0o644))
- .pipe(gulp.dest('js/ts/'))
- );
- //endregion
- //region Task Typescript for pages
- gulp.task(
- 'pages-ts',
- () => gulp
- .src(['js/pages/*.ts', '!js/pages/*.d.ts'])
- .pipe(plumber())
- .pipe(map.init())
- .pipe(ts({"target": "ES5"}))
- .pipe(map.write('./'))
- .pipe(chmod(0o644))
- .pipe(gulp.dest('../../public/build/pages/'))
- .pipe(ignore.exclude('*.map'))
- .pipe(uglifyjs())
- .pipe(rename({ suffix: '.min' }))
- .pipe(map.write('./'))
- .pipe(chmod(0o644))
- .pipe(gulp.dest('../../public/build/pages/'))
- );
- //endregion
- //region Task ES6/babel
- gulp.task(
- 'babel',
- () => gulp
- .src([
- 'js/app/**/*.js',
- 'js/user/**/*.js'
- ])
- .pipe(plumber())
- .pipe(map.init({loadMaps: true}))
- .pipe(concat('babeled.js'))
- .pipe(babel({
- compact: false,
- presets: [['@babel/env', {
- "targets": {
- "browsers": [">0.25%"]
- }
- }]]
- }))
- .pipe(map.write('./'))
- .pipe(chmod(0o644))
- .pipe(gulp.dest("build/"))
- );
- //endregion
- //region Task ES6/Babel for pages
- gulp.task(
- 'pages-babel',
- () => gulp
- .src('js/pages/*.js')
- .pipe(plumber())
- .pipe(map.init({loadMaps: true}))
- .pipe(babel({
- compact: false,
- presets: [['@babel/env', {
- "targets": {
- "browsers": [">0.25%"]
- }
- }]]
- }))
- .pipe(map.write('./'))
- .pipe(chmod(0o644))
- .pipe(gulp.dest('../../public/build/pages/'))
- .pipe(ignore.exclude('*.map'))
- .pipe(uglifyjs())
- .pipe(rename({ suffix: '.min' }))
- .pipe(map.write('./'))
- .pipe(chmod(0o644))
- .pipe(gulp.dest('../../public/build/pages/'))
- );
- //endregion
- //region Task Concat javascripts
- gulp.task(
- 'js',
- () => gulp
- .src([
- "js/components/jquery.js",
- "js/components/jquery.ui/widget.js",
- "js/components/jquery.ui/mouse.js",
- 'js/components/**/*.js',
- 'js/ts/**/*.js',
- 'build/babeled.js'
- ])
- .pipe(plumber())
- .pipe(map.init({loadMaps: true}))
- .pipe(concat('app.js'))
- .pipe(map.write('./'))
- .pipe(chmod(0o644))
- .pipe(gulp.dest("build/"))
- .pipe(ignore.exclude('*.map'))
- .pipe(uglifyjs())
- .pipe(rename('app.min.js'))
- .pipe(map.write('./'))
- .pipe(chmod(0o644))
- .pipe(gulp.dest("build/"))
- );
- //endregion
- //region Watch(er) task
- gulp.task('watch', gulpSequence('default', 'watching'));
- gulp.task('watching', function() {
- gulp.watch(['less/*.less', 'less/*/*.less', 'less/*/*.css'] , ['css']);
- gulp.watch(['js/components/**/*.js'] , ['js']);
- gulp.watch(['js/app/**/*.js', 'js/user/**/*.js'] , gulpSequence('babel', 'js'));
- gulp.watch(['ts/**/*.ts'] , gulpSequence('ts', 'js'));
- gulp.watch(['js/pages/*.ts'] , ['pages-ts']);
- gulp.watch(['js/pages/*.js'] , ['pages-babel']);
- });
- //endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement