Refactoring gulp

stable
Andrey Antukh 2014-06-26 13:51:45 +02:00
parent d34a216207
commit e0be6ada9b
3 changed files with 43 additions and 48 deletions

View File

@ -72,6 +72,3 @@ $prefix-for-spec: true;
@import 'layout/admin-membership'; @import 'layout/admin-membership';
@import 'layout/project-colors'; @import 'layout/project-colors';
@import 'layout/kanban'; @import 'layout/kanban';
//Vendor
@import 'vendor/pikaday'

View File

@ -26,10 +26,12 @@ paths = {
dist: "dist" dist: "dist"
html: "app/*.html" html: "app/*.html"
jade: "app/partials/**/*.jade" jade: "app/partials/**/*.jade"
appStyles: "app/styles/**/*.scss" scssStyles: "app/styles/**/*.scss"
distStyles: "dist/styles" distStylesPath: "dist/styles"
sassMain: "app/styles/main.scss" distStyles: ["dist/styles/vendor.css",
css: "dist/styles/**/*.css" "dist/styles/app.css"]
sassStylesMain: "app/styles/main.scss"
css: "app/styles/vendor/*.css"
images: "app/images/**/*" images: "app/images/**/*"
locales: "app/locales/**/*.json" locales: "app/locales/**/*.json"
coffee: ["app/coffee/app.coffee", coffee: ["app/coffee/app.coffee",
@ -80,35 +82,39 @@ gulp.task "template", ->
.pipe(jade({pretty: true, locals:{v:(new Date()).getTime()}})) .pipe(jade({pretty: true, locals:{v:(new Date()).getTime()}}))
.pipe(gulp.dest(paths.dist)) .pipe(gulp.dest(paths.dist))
gulp.task "scsslint", ->
# Sass lint gulp.src(paths.scssStyles)
gulp.task "scss-lint", ->
gulp.src([paths.appStyles, "!/**/bourbon/**/*.scss"])
.pipe(cache("scsslint")) .pipe(cache("scsslint"))
.pipe(scsslint({config: "scsslint.yml"})) .pipe(scsslint({config: "scsslint.yml"}))
# Sass Files
gulp.task "sass", -> gulp.task "sass", ->
gulp.src(paths.sassMain) gulp.src(paths.sassStylesMain)
.pipe(plumber()) .pipe(plumber())
.pipe(sass()) .pipe(sass())
.pipe(gulp.dest(paths.distStyles)) .pipe(rename("app.css"))
.pipe(gulp.dest(paths.distStylesPath))
gulp.task "css", ->
gulp.src(paths.css)
.pipe(concat("vendor.css"))
.pipe(gulp.dest(paths.distStylesPath))
# CSS Linting and report gulp.task "csslint-vendor", ->
gulp.task "css", ["sass"], -> gulp.src(paths.css)
gulp.src([paths.css, "!#{paths.dist}/styles/vendor/**/*.css"])
.pipe(csslint("csslintrc.json")) .pipe(csslint("csslintrc.json"))
.pipe(csslint.reporter()) .pipe(csslint.reporter())
gulp.task "csslint-app", ->
gulp.src(paths.distStylesPath + "/app.css")
.pipe(csslint("csslintrc.json"))
.pipe(csslint.reporter())
# Minify CSS # # Minify CSS
gulp.task "minifyCSS", ["css", "sass"], -> # gulp.task "minifyCSS", ["css", "sass"], ->
gulp.src("dist/styles/main.css") # gulp.src("dist/styles/main.css")
.pipe(minifyCSS()) # .pipe(minifyCSS())
.pipe(gulp.dest(paths.distStyles)) # .pipe(gulp.dest(paths.distStylesPath))
.pipe(size()) # .pipe(size())
gulp.task "imagemin", -> gulp.task "imagemin", ->
gulp.src(paths.images) gulp.src(paths.images)
@ -116,6 +122,10 @@ gulp.task "imagemin", ->
.pipe(imagemin({progressive: true})) .pipe(imagemin({progressive: true}))
.pipe(gulp.dest(paths.dist+"/images")) .pipe(gulp.dest(paths.dist+"/images"))
gulp.task "styles", ["css", "sass"], ->
gulp.src(paths.distStyles)
.pipe(concat("main.css"))
.pipe(gulp.dest(paths.distStylesPath))
############################################################################## ##############################################################################
# JS Related tasks # JS Related tasks
@ -152,7 +162,7 @@ gulp.task "locales", ->
############################################################################## ##############################################################################
# Copy Files # Copy Files
gulp.task "copy", ["sass"], -> gulp.task "copy", ->
gulp.src("#{paths.app}/fonts/*") gulp.src("#{paths.app}/fonts/*")
.pipe(gulp.dest("#{paths.dist}/fonts/")) .pipe(gulp.dest("#{paths.dist}/fonts/"))
@ -167,15 +177,6 @@ gulp.task "connect", ->
}) })
# Rerun the task when a file changes
gulp.task "watch", ->
gulp.watch(paths.jade, ["jade"])
gulp.watch(paths.appStyles, ["scss-lint", "sass", "css"])
gulp.watch(paths.coffee, ["coffee"])
gulp.watch(paths.vendorJsLibs, ["jslibs"])
gulp.watch(paths.locales, ["locales"])
gulp.task "express", -> gulp.task "express", ->
express = require("express") express = require("express")
app = express() app = express()
@ -192,13 +193,22 @@ gulp.task "express", ->
app.listen(9001) app.listen(9001)
# Rerun the task when a file changes
gulp.task "watch", ->
gulp.watch(paths.jade, ["jade"])
gulp.watch(paths.scssStyles, ["scsslint", "styles", "csslint-app"])
gulp.watch(paths.css, ["styles", "csslint-vendor"])
gulp.watch(paths.coffee, ["coffee"])
gulp.watch(paths.vendorJsLibs, ["jslibs"])
gulp.watch(paths.locales, ["locales"])
# The default task (called when you run gulp from cli) # The default task (called when you run gulp from cli)
gulp.task "default", [ gulp.task "default", [
"jade", "jade",
"template", "template",
"sass", "styles",
"css", "csslint-app",
"copy", "copy",
"locales", "locales",
"coffee", "coffee",
@ -207,15 +217,3 @@ gulp.task "default", [
"express", "express",
"watch" "watch"
] ]
# The default task (called when you run `gulp` from cli)
gulp.task "dist", [
"jade",
"sass",
"css",
"minifyCSS",
"imagemin",
"copy",
"connect",
"watch"
]