From 12e4061b794d71200c33117afd386c93c76aee57 Mon Sep 17 00:00:00 2001 From: chsakell Date: Mon, 10 Oct 2016 10:47:13 +0300 Subject: [PATCH] refactor gulp tasks --- gulp.config.js | 28 ++++++++++++ gulpfile.js | 122 +++++++++++++------------------------------------ package.json | 1 + 3 files changed, 62 insertions(+), 89 deletions(-) create mode 100644 gulp.config.js diff --git a/gulp.config.js b/gulp.config.js new file mode 100644 index 0000000..9b53651 --- /dev/null +++ b/gulp.config.js @@ -0,0 +1,28 @@ +module.exports = function() { + + var base = { + webroot: "./wwwroot/", + node_modules: "./node_modules/" + }; + + var config = { + /** + * Files paths + */ + angular: base.node_modules + "@angular/**/*.js", + app : "app/**/*.*", + appDest : base.webroot + "app", + js: base.webroot + "js/**/*.js", + css : base.webroot + "css/**/*.css", + lib : base.webroot + "lib/", + angularWebApi : base.node_modules + "angular2-in-memory-web-api/*.js", + corejs : base.node_modules + "core-js/client/shim*.js", + zonejs : base.node_modules + "zone.js/dist/zone*.js", + reflectjs : base.node_modules + "reflect-metadata/Reflect*.js", + systemjs : base.node_modules + "systemjs/dist/*.js", + rxjs : base.node_modules + "rxjs/**/*.js", + jasminejs : base.node_modules + "jasmine-core/lib/jasmine-core/*.*" + }; + + return config; +}; \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 0c80865..acd6c21 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,117 +1,72 @@ /// "use strict"; -var gulp = require("gulp"), - rimraf = require("gulp-rimraf"), - concat = require("gulp-concat"), - cssmin = require("gulp-cssmin"), - uglify = require("gulp-uglify"), - copy = require("gulp-copy"), - rename = require("gulp-rename"), - watch = require("gulp-watch"), - tsc = require("gulp-tsc"); +var gulp = require("gulp"); +var config = require('./gulp.config')(); +var $ = require('gulp-load-plugins')({ lazy: true }); -var paths = { - webroot: "./wwwroot/", - node_modules: "./node_modules/" -}; - -paths.js = paths.webroot + "js/**/*.js"; -paths.minJs = paths.webroot + "js/**/*.min.js"; -paths.css = paths.webroot + "css/**/*.css"; -paths.minCss = paths.webroot + "css/**/*.min.css"; -paths.concatJsDest = paths.webroot + "js/live-game-feed.min.js"; -paths.concatCssDest = paths.webroot + "css/site.min.css"; - -paths.lib = paths.webroot + "lib/"; - -paths.angular = paths.node_modules + "@angular/**/*.js"; -paths.angularWebApi = paths.node_modules + "angular2-in-memory-web-api/*.js"; -paths.corejs = paths.node_modules + "core-js/client/shim*.js"; -paths.zonejs = paths.node_modules + "zone.js/dist/zone*.js"; -paths.reflectjs = paths.node_modules + "reflect-metadata/Reflect*.js"; -paths.systemjs = paths.node_modules + "systemjs/dist/*.js"; -paths.rxjs = paths.node_modules + "rxjs/**/*.js"; -paths.jasminejs = paths.node_modules + "jasmine-core/lib/jasmine-core/*.*"; - -paths.app = "app/**/*.*"; -paths.appDest = paths.webroot + "app"; gulp.task("clean:js", function (cb) { - return rimraf(paths.concatJsDest, cb); + return $.rimraf(config.concatJsDest, cb); }); gulp.task("clean:css", function (cb) { - rimraf(paths.concatCssDest, cb); + $.rimraf(config.concatCssDest, cb); }); gulp.task("clean", ["clean:js", "clean:css"]); -gulp.task("min:js", function () { - return gulp.src([paths.js, "!" + paths.minJs], { base: "." }) - .pipe(concat(paths.concatJsDest)) - .pipe(uglify()) - .pipe(gulp.dest(".")); -}); - -gulp.task("min:css", function () { - return gulp.src([paths.css, "!" + paths.minCss]) - .pipe(concat(paths.concatCssDest)) - .pipe(cssmin()) - .pipe(gulp.dest(".")); -}); - gulp.task("copy:angular", function () { - return gulp.src(paths.angular, - { base: paths.node_modules + "@angular/" }) - .pipe(gulp.dest(paths.lib + "@angular/")); + return gulp.src(config.angular, + { base: "./node_modules/" + "@angular/" }) + .pipe(gulp.dest(config.lib + "@angular/")); }); gulp.task("copy:angularWebApi", function () { - return gulp.src(paths.angularWebApi, - { base: paths.node_modules }) - .pipe(gulp.dest(paths.lib)); + return gulp.src(config.angularWebApi, + { base: "./node_modules/" }) + .pipe(gulp.dest(config.lib)); }); gulp.task("copy:corejs", function () { - return gulp.src(paths.corejs, - { base: paths.node_modules }) - .pipe(gulp.dest(paths.lib)); + return gulp.src(config.corejs, + { base: "./node_modules/" }) + .pipe(gulp.dest(config.lib)); }); gulp.task("copy:zonejs", function () { - return gulp.src(paths.zonejs, - { base: paths.node_modules }) - .pipe(gulp.dest(paths.lib)); + return gulp.src(config.zonejs, + { base: "./node_modules/" }) + .pipe(gulp.dest(config.lib)); }); gulp.task("copy:reflectjs", function () { - return gulp.src(paths.reflectjs, - { base: paths.node_modules }) - .pipe(gulp.dest(paths.lib)); + return gulp.src(config.reflectjs, + { base: "./node_modules/" }) + .pipe(gulp.dest(config.lib)); }); gulp.task("copy:systemjs", function () { - return gulp.src(paths.systemjs, - { base: paths.node_modules }) - .pipe(gulp.dest(paths.lib)); + return gulp.src(config.systemjs, + { base: "./node_modules/" }) + .pipe(gulp.dest(config.lib)); }); gulp.task("copy:rxjs", function () { - return gulp.src(paths.rxjs, - { base: paths.node_modules }) - .pipe(gulp.dest(paths.lib)); + return gulp.src(config.rxjs, + { base: "./node_modules/" }) + .pipe(gulp.dest(config.lib)); }); gulp.task("copy:app", function () { - return gulp.src(paths.app) - .pipe(gulp.dest(paths.appDest)); + return gulp.src(config.app) + .pipe(gulp.dest(config.appDest)); }); gulp.task("copy:jasmine", function () { - return gulp.src(paths.jasminejs, - { base: paths.node_modules + "jasmine-core/lib" }) - .pipe(gulp.dest(paths.lib)); + return gulp.src(config.jasminejs, + { base: "./node_modules/" + "jasmine-core/lib" }) + .pipe(gulp.dest(config.lib)); }); gulp.task("dependencies", ["copy:angular", @@ -125,19 +80,8 @@ gulp.task("dependencies", ["copy:angular", "copy:app"]); gulp.task("watch", function () { - return watch(paths.app) - .pipe(gulp.dest(paths.appDest)); + return $.watch(config.app) + .pipe(gulp.dest(config.appDest)); }); -gulp.task("min:app", function () { - return gulp.src(paths.app) - .pipe(uglify()) - .pipe(rename({ - suffix: '.min' - })) - .pipe(gulp.dest(paths.appDest)); -}); - -gulp.task("min", ["min:js", "min:css", "min:app"]); - gulp.task("default", ["clean", "dependencies"]); \ No newline at end of file diff --git a/package.json b/package.json index bc3a492..aba0b6d 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "gulp-concat": ">=2.5.2", "gulp-copy": ">=0.0.2", "gulp-cssmin": ">=0.1.7", + "gulp-load-plugins": "^1.3.0", "gulp-rename": ">=1.2.2", "gulp-rimraf": ">=0.2.0", "gulp-tsc": ">=1.2.0",