From dc48e5b29b21a59a21d23b4a3f9da4fd2b8a1e43 Mon Sep 17 00:00:00 2001 From: Judd Younce Date: Fri, 5 Jun 2015 05:57:14 -0500 Subject: [PATCH] feat(angular): add template cache options dev.enable and useAbsolutePaths to config --- README.md | 2 + config/config-angular.coffee | 3 +- config/config-file-names.coffee | 27 +++++----- config/config-options.coffee | 5 +- config/config-temp.coffee | 17 +++--- init/tasks.coffee | 2 +- tasks/clean/cleanup-client.coffee | 2 - tasks/common.coffee | 2 +- tasks/copy/copy-views.coffee | 15 ++++++ tasks/minify/concat-all-files.coffee | 19 +------ tasks/minify/minify-client.coffee | 1 - tasks/minify/minify-html.coffee | 79 ---------------------------- tasks/minify/minify-images.coffee | 11 ++-- tasks/minify/template-cache.coffee | 5 +- 14 files changed, 51 insertions(+), 139 deletions(-) create mode 100644 tasks/copy/copy-views.coffee delete mode 100644 tasks/minify/minify-html.coffee diff --git a/README.md b/README.md index 02f38b8..8e3a11d 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,8 @@ gulp rapid-build:prod # ports.server = (int) defaults to 3000 # ports.reload = (int) defaults to 3001 # order[scripts|styles][first|last] = (array of strings) file paths +# angular.templateCache.dev.enable = (boolean) defaults to false +# angular.templateCache.useAbsolutePaths = (boolean) defaults to false # ====================================================================================== ``` diff --git a/config/config-angular.coffee b/config/config-angular.coffee index d3d3785..a4912b7 100644 --- a/config/config-angular.coffee +++ b/config/config-angular.coffee @@ -21,7 +21,8 @@ module.exports = (config, options) -> # template cache # ============== angular.templateCache = {} - angular.templateCache.devEnable = options.angular.templateCache.devEnable or false + angular.templateCache.dev = {} + angular.templateCache.dev.enable = options.angular.templateCache.dev.enable or false angular.templateCache.useAbsolutePaths = options.angular.templateCache.useAbsolutePaths or false # add angular to config diff --git a/config/config-file-names.coffee b/config/config-file-names.coffee index 2a68891..cca094e 100644 --- a/config/config-file-names.coffee +++ b/config/config-file-names.coffee @@ -2,21 +2,18 @@ module.exports = (config) -> log = require "#{config.req.helpers}/log" test = require("#{config.req.helpers}/test")() - # init fileName - # ============= - fileName = {} - fileName.scripts = {} - fileName.styles = {} - fileName.views = {} - - # names - # ===== - fileName.scripts.all = 'all.js' - fileName.styles.all = 'all.css' - fileName.views.main = 'views.js' - fileName.scripts.min = 'scripts.min.js' - fileName.styles.min = 'styles.min.js' - fileName.views.min = 'views.min.js' + # init fileName (used in config-temp.coffee) + # ========================================== + fileName = + scripts: + all: 'all.js' + min: 'scripts.min.js' + styles: + all: 'all.css' + min: 'styles.min.css' + views: + main: 'views.js' + min: 'views.min.js' # add fileName to config # ====================== diff --git a/config/config-options.coffee b/config/config-options.coffee index 640a88a..5c9d17f 100644 --- a/config/config-options.coffee +++ b/config/config-options.coffee @@ -15,7 +15,7 @@ # angular.modules = (array) additional angular modules # angular.version = (string) defaults to '1.4.x' # angular.moduleName = (string) application module name -# angular.templateCache.devEnable = (boolean) defaults to false +# angular.templateCache.dev.enable = (boolean) defaults to false # angular.templateCache.useAbsolutePaths = (boolean) defaults to false # ======================================================================================== module.exports = (config, options) -> @@ -65,8 +65,9 @@ module.exports = (config, options) -> options.angular.version = null if not isType.string options.angular.version options.angular.moduleName = null if not isType.string options.angular.moduleName options.angular.templateCache = {} if not isType.object options.angular.templateCache - options.angular.templateCache.devEnable = null if not isType.boolean options.angular.templateCache.devEnable options.angular.templateCache.useAbsolutePaths = null if not isType.boolean options.angular.templateCache.useAbsolutePaths + options.angular.templateCache.dev = {} if not isType.object options.angular.templateCache.dev + options.angular.templateCache.dev.enable = null if not isType.boolean options.angular.templateCache.dev.enable formatOptions() formatServerOptions() diff --git a/config/config-temp.coffee b/config/config-temp.coffee index 650aabf..5484911 100644 --- a/config/config-temp.coffee +++ b/config/config-temp.coffee @@ -5,16 +5,9 @@ module.exports = (config) -> # constants # ========= - tDir = '.temp' - types = - styles: - all: 'all.css' - min: 'styles.min.css' - scripts: - all: 'all.js' - min: 'scripts.min.js' - views: - min: 'views.min.js' + tDir = '.temp' + types = ['scripts', 'styles'] + files = ['all', 'min'] # init temp # ========= @@ -25,12 +18,14 @@ module.exports = (config) -> # add types # ========= addTypes = -> - for own k1, v1 of types + for own k1, v1 of config.fileName + continue if types.indexOf(k1) is -1 temp.client[k1] = {} temp.client[k1].dir = path.join temp.client.dir, config.dist.app.client[k1].dirName for own k2, v2 of v1 + continue if files.indexOf(k2) is -1 temp.client[k1][k2] = {} temp.client[k1][k2].file = v2 temp.client[k1][k2].path = diff --git a/init/tasks.coffee b/init/tasks.coffee index 52e4ee8..e5cfd54 100644 --- a/init/tasks.coffee +++ b/init/tasks.coffee @@ -41,6 +41,7 @@ module.exports = (gulp, config) -> require("#{config.req.tasks}/copy/copy-libs") gulp, config # copy-libs require("#{config.req.tasks}/copy/copy-server-config") gulp, config # copy-server-config require("#{config.req.tasks}/copy/copy-server-node_modules") gulp, config # copy-server-node_modules + require("#{config.req.tasks}/copy/copy-views") gulp, config # copy-views # manage # ====== @@ -52,7 +53,6 @@ module.exports = (gulp, config) -> require("#{config.req.tasks}/minify/concat-app-files") gulp, config # concat-app-files require("#{config.req.tasks}/minify/minify-client") gulp, config # minify-client require("#{config.req.tasks}/minify/minify-css") gulp, config # minify-css - require("#{config.req.tasks}/minify/minify-html") gulp, config # minify-html require("#{config.req.tasks}/minify/minify-images") gulp, config # minify-images require("#{config.req.tasks}/minify/minify-js") gulp, config # minify-js require("#{config.req.tasks}/minify/minify-server") gulp, config # minify-server diff --git a/tasks/clean/cleanup-client.coffee b/tasks/clean/cleanup-client.coffee index cff2a11..5bf5dd5 100644 --- a/tasks/clean/cleanup-client.coffee +++ b/tasks/clean/cleanup-client.coffee @@ -24,14 +24,12 @@ module.exports = (gulp, config) -> -> delTask [ config.temp.client.styles.all.path config.temp.client.scripts.all.path - config.temp.client.views.dir ] -> delTask [ config.glob.dist.rb.client.all config.glob.dist.app.client.libs.all config.glob.dist.app.client.scripts.all config.glob.dist.app.client.styles.all - config.glob.dist.app.client.views.all ] -> moveTask( "#{config.temp.client.dir}/**/*" diff --git a/tasks/common.coffee b/tasks/common.coffee index 1172a9d..9f2b610 100644 --- a/tasks/common.coffee +++ b/tasks/common.coffee @@ -11,7 +11,7 @@ module.exports = (gulp, config) -> "#{config.rb.prefix.task}build-config" [ "#{config.rb.prefix.task}copy-css" - "#{config.rb.prefix.task}copy-html" + "#{config.rb.prefix.task}copy-views" "#{config.rb.prefix.task}copy-images" "#{config.rb.prefix.task}copy-js" "#{config.rb.prefix.task}copy-libs" diff --git a/tasks/copy/copy-views.coffee b/tasks/copy/copy-views.coffee new file mode 100644 index 0000000..a59c9c0 --- /dev/null +++ b/tasks/copy/copy-views.coffee @@ -0,0 +1,15 @@ +module.exports = (gulp, config) -> + gulpSequence = require('gulp-sequence').use gulp + + # register task + # ============= + gulp.task "#{config.rb.prefix.task}copy-views", (cb) -> + if config.env.name is 'prod' + task = 'template-cache' + else if config.angular.templateCache.dev.enable + task = 'template-cache' + else + task = 'copy-html' + + gulpSequence "#{config.rb.prefix.task}#{task}", cb + diff --git a/tasks/minify/concat-all-files.coffee b/tasks/minify/concat-all-files.coffee index c240864..f7fe324 100644 --- a/tasks/minify/concat-all-files.coffee +++ b/tasks/minify/concat-all-files.coffee @@ -12,16 +12,6 @@ module.exports = (gulp, config) -> defer.resolve() defer.promise - concatViews = (src, dest, file, viewsFile) -> - defer = q.defer() - gulp.src src - .pipe concat file - .pipe gulp.dest dest - .on 'end', -> - console.log "added #{viewsFile} to #{file}".yellow - defer.resolve() - defer.promise - runTasks = (loc, exclude) -> defer = q.defer() client = require(config.json.files.path).client @@ -48,14 +38,7 @@ module.exports = (gulp, config) -> loc.scripts.min.file 'script' ) - ]).done -> - # angular templatecache views - concatViews( - [loc.scripts.min.path, loc.views.min.path] - loc.scripts.dir - loc.scripts.min.file - loc.views.min.file - ).done -> defer.resolve() + ]).done -> defer.resolve() defer.promise # register task diff --git a/tasks/minify/minify-client.coffee b/tasks/minify/minify-client.coffee index c7b1371..a9b1efd 100644 --- a/tasks/minify/minify-client.coffee +++ b/tasks/minify/minify-client.coffee @@ -8,7 +8,6 @@ module.exports = (gulp, config) -> "#{config.rb.prefix.task}concat-app-files" [ "#{config.rb.prefix.task}minify-css" - "#{config.rb.prefix.task}minify-html" "#{config.rb.prefix.task}minify-images" "#{config.rb.prefix.task}minify-js" ] diff --git a/tasks/minify/minify-html.coffee b/tasks/minify/minify-html.coffee deleted file mode 100644 index e8ecb31..0000000 --- a/tasks/minify/minify-html.coffee +++ /dev/null @@ -1,79 +0,0 @@ -module.exports = (gulp, config) -> - q = require 'q' - minifyJs = require 'gulp-uglify' - minifyHtml = require 'gulp-minify-html' - templateCache = require 'gulp-angular-templatecache' - - # tasks - # ===== - copyTask = (src, dest, loc) -> - defer = q.defer() - gulp.src src - .pipe gulp.dest dest - .on 'end', -> - console.log "copied #{loc} views".yellow - defer.resolve() - defer.promise - - minifyTask = (src, dest, file) -> - defer = q.defer() - gulp.src src - .pipe minifyHtml() - .pipe templateCache file, module:'app' - .pipe minifyJs() - .pipe gulp.dest dest - .on 'end', -> - console.log "created #{file}".yellow - defer.resolve() - defer.promise - - # globs - # ===== - getGlob = (loc, type, lang) -> - config.glob.dist[loc].client[type][lang] - glob = - views: - rb: getGlob 'rb', 'views', 'html' - app: getGlob 'app', 'views', 'html' - all: "#{config.temp.client.views.dir}/**/*.html" - - # dests - # ===== - dests = - views: - rb: - config.temp.client.views.dir + '/' + - config.rb.prefix.distDir + '/' + - config.dist.rb.client.views.dirName - app: - config.temp.client.views.dir + '/' + - config.dist.app.client.views.dirName - - runTasks = -> # synchronously - defer = q.defer() - tasks = [ - -> copyTask( - glob.views.rb - dests.views.rb - 'rb' - ) - -> copyTask( - glob.views.app - dests.views.app - 'app' - ) - -> minifyTask( - glob.views.all - config.temp.client.views.dir - config.temp.client.views.min.file - ) - ] - tasks.reduce(q.when, q()).done -> defer.resolve() - defer.promise - - # register task - # ============= - gulp.task "#{config.rb.prefix.task}minify-html", -> - runTasks() - - diff --git a/tasks/minify/minify-images.coffee b/tasks/minify/minify-images.coffee index f7e59de..603987f 100644 --- a/tasks/minify/minify-images.coffee +++ b/tasks/minify/minify-images.coffee @@ -1,5 +1,6 @@ module.exports = (gulp, config) -> - q = require 'q' + q = require 'q' + path = require 'path' moveTask = (src, dest) -> defer = q.defer() @@ -13,9 +14,11 @@ module.exports = (gulp, config) -> # register task # ============= gulp.task "#{config.rb.prefix.task}minify-images", -> - rbImgDest = config.temp.client.dir + '/' + - config.rb.prefix.distDir + '/' + - config.dist.rb.client.images.dirName + rbImgDest = path.join( + config.temp.client.dir + config.rb.prefix.distDir + config.dist.rb.client.images.dirName + ) moveTask( "#{config.glob.dist.rb.client.images.all}/*" rbImgDest diff --git a/tasks/minify/template-cache.coffee b/tasks/minify/template-cache.coffee index a177fb8..9373547 100644 --- a/tasks/minify/template-cache.coffee +++ b/tasks/minify/template-cache.coffee @@ -3,7 +3,6 @@ module.exports = (gulp, config) -> path = require 'path' es = require 'event-stream' gulpif = require 'gulp-if' - minifyJs = require 'gulp-uglify' minifyHtml = require 'gulp-minify-html' templateCache = require 'gulp-angular-templatecache' @@ -47,7 +46,6 @@ module.exports = (gulp, config) -> .pipe addToDistPath() .pipe gulpif isProd, minifyHtml() .pipe templateCache file, opts - .pipe gulpif isProd, minifyJs() .pipe gulp.dest dest .on 'end', -> console.log "created #{file}".yellow @@ -59,9 +57,8 @@ module.exports = (gulp, config) -> gulp.task "#{config.rb.prefix.task}template-cache", -> isProd = config.env.name is 'prod' file = if isProd then 'min' else 'main' - dest = if isProd then config.temp else config.dist.rb file = config.fileName.views[file] - dest = dest.client.scripts.dir + dest = config.dist.rb.client.scripts.dir src = [ glob.views.rb, glob.views.app ] runTask src, dest, file, isProd