From 938269d7a745d0f5351bf1ee03f0f23a3d3ba98a Mon Sep 17 00:00:00 2001 From: Dan Lasky Date: Thu, 25 Feb 2016 16:00:51 -0600 Subject: [PATCH] cleaned up magic strings to config (C) --- Gulpfile.js | 81 +++++++++++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 40 deletions(-) diff --git a/Gulpfile.js b/Gulpfile.js index 588a79f2..9c3c035f 100644 --- a/Gulpfile.js +++ b/Gulpfile.js @@ -47,7 +47,7 @@ var base64 = require('gulp-base64'); var minimist = require('minimist'); var open = require('gulp-open'); -const C = { +var C = { SRC:'src/', BUILD: 'build/', BUILD_DOCS: 'build_docs/', @@ -58,6 +58,7 @@ const C = { MODULE_HTML: 'mm-*.html', SHARED: 'shared/', BOWER: 'bower_components/', + SASS_INCLUDE: ['bower_components/bourbon/app/assets/stylesheets/', 'src/shared/sass/'], LIVE_PORT: 8000, DOCS_PORT: 8001 }; @@ -65,11 +66,10 @@ const C = { var PATCH_LIST = [ - 'bower_components/moment/min/moment.min.js' + j(C.BOWER, '/moment/min/moment.min.js') ]; var IS_DEBUG = !!gutil.env.debug; -console.log(IS_DEBUG); function dbg(t) { return gif(IS_DEBUG, debug({title:t})); @@ -78,10 +78,10 @@ function dbg(t) { /** BUILD **/ gulp.task('patch-lib', function() { - gulp.src(C.PATCH_LIST, {base: j(__dirname, 'bower_components')}) + gulp.src(C.PATCH_LIST, {base: j(__dirname, C.BOWER)}) .pipe(dbg('patch-lib')) .pipe(wrap("(function(define, require) { {{{contents}}} })();",{},{engine:"hogan"}).on('error',console.error)) - .pipe(gulp.dest( j(__dirname, 'bower_components') )); + .pipe(gulp.dest( j(__dirname, C.BOWER) )); }); gulp.task('clean', function() { @@ -103,7 +103,7 @@ gulp.task('sass', function() { var wrapper = fs.readFileSync(j(C.TEMPLATES,"style_module_template.html"),'utf8'); return gulp.src(j(C.SRC, C.MODULE_MASK,'*.scss')) .pipe(cache('scss')) - .pipe(sass({includePaths: ['./bower_components/bourbon/app/assets/stylesheets/', './src/shared/sass/']}).on('error', sass.logError)) + .pipe(sass({includePaths: C.SASS_INCLUDE}).on('error', sass.logError)) .pipe(postcss([autoprefixer({browsers: ['last 2 versions']})])) .pipe(dbg('sass')) .pipe(gulp.dest(C.BUILD)) @@ -117,8 +117,8 @@ gulp.task('sass', function() { }); gulp.task('font', function() { - return gulp.src(C.SRC + 'shared/fonts/fonts.scss') - .pipe(sass({includePaths: ['./bower_components/bourbon/app/assets/stylesheets/', './src/shared/sass/']}).on('error', sass.logError)) + return gulp.src(j(C.SRC, C.SHARED, '/fonts/fonts.scss')) + .pipe(sass({includePaths: C.SASS_INCLUDE}).on('error', sass.logError)) .pipe(dbg('font')) .pipe(gulp.dest(C.BUILD + 'shared/fonts/')) .pipe(wrap("",{},{engine:"hogan"}).on('error',console.log)) @@ -159,9 +159,9 @@ function vulcanizeSingle(opts, baseList, basePath) { } gulp.task('vulcanize', function() { - var moduleGlob = j(C.BUILD,'mm-*/mm-*.html'); + var moduleGlob = j(C.BUILD,C.MODULE_MASK, C.MODULE_HTML); var excludes = glob.sync(moduleGlob); - excludes.push('bower_components/polymer/polymer.html'); + excludes.push(j(C.BOWER, '/polymer/polymer.html')); var modules = gulp.src(moduleGlob) .pipe(cache('v-modules')) @@ -193,10 +193,10 @@ gulp.task('build', function(cb) { }); gulp.task('build:prod', ['patch-lib', 'build'], function() { - var excludes = glob.sync(j(C.BUILD,'mm-*/mm-*.html')); + var excludes = glob.sync(j(C.BUILD,C.MODULE_MASK, C.MODULE_HTML)); excludes.push('bower_components/polymer/polymer.html'); - var modules = gulp.src(j(C.BUILD,'mm-*/mm-*.html')) + var modules = gulp.src(j(C.BUILD,C.MODULE_MASK, C.MODULE_HTML)) .pipe(vulcanizeSingle({ inlineScripts: true, inlineCss: true, @@ -241,28 +241,28 @@ gulp.task('clean:docs', function() { }); gulp.task('copy:docs', function() { - var assets = gulp.src('docs/images/**',{base:'./docs'}); + var assets = gulp.src(j(C.DOCS,'/images/**'),{base:C.DOCS}); var cname = gulp.src('CNAME'); var license = gulp.src('LICENSE.txt'); var merged_static = merge(assets, cname, license) .pipe(gulp.dest(C.BUILD_DOCS)); - var bower_components = gulp.src(['bower_components/webcomponentsjs/**/*', 'bower_components/polymer/**/*'], {base:'bower_components'}) + var bower_components = gulp.src([j(C.BOWER,'/webcomponentsjs/**/*'), j(C.BOWER,'/polymer/**/*')], {base:C.BOWER}) .pipe(dbg('copy-bower')) - .pipe(gulp.dest(C.BUILD_DOCS+'/bower_components/')); + .pipe(gulp.dest(j(C.BUILD_DOCS,C.BOWER))); var lib = gulp.src(j(C.BUILD,'**')) .pipe(dbg('copy-lib')) - .pipe(gulp.dest(j(C.BUILD_DOCS,'/bower_components/strand/dist'))); + .pipe(gulp.dest(j(C.BUILD_DOCS,C.BOWER,'/strand/dist'))); return merge(bower_components, merged_static, lib); }); gulp.task('sass:docs', function() { - return gulp.src('docs/**/*.scss') + return gulp.src(j(C.DOCS,'/**/*.scss')) .pipe(dbg('sass-docs')) - .pipe(sass({includePaths: ['./bower_components/bourbon/app/assets/stylesheets/', './src/shared/sass/']}).on('error', sass.logError)) + .pipe(sass({includePaths: C.SASS_INCLUDE}).on('error', sass.logError)) .pipe(postcss([autoprefixer({browsers: ['last 2 versions']})])) .pipe(gulp.dest(C.BUILD_DOCS)); }); @@ -326,7 +326,7 @@ gulp.task('docs:templates', function() { function injectModuleData(pkg, moduleMap, articleList, articleMap) { return through.obj(function(file, enc, cb) { var moduleDoc = JSON.parse(file.contents); - var examplePath = path.join(C.SRC, moduleDoc.name, 'example.html'); + var examplePath = j(C.SRC, moduleDoc.name, 'example.html'); var example; try { example = fs.readFileSync(examplePath).toString('utf8'); @@ -358,7 +358,7 @@ gulp.task('docs:templates', function() { articleList: articles, articleMap: articleMap }; - var templatePath = path.join(__dirname,'docs/article_template.html'); + var templatePath = j(__dirname, C.DOCS,'/article_template.html'); var templateString = fs.readFileSync(templatePath).toString('utf8'); var template = hogan.compile(templateString); var doc = template.render(articleDoc, partialMap); @@ -371,25 +371,25 @@ gulp.task('docs:templates', function() { var pkg = getPkgInfo(); // Create moduleList from directory listing - var modules = glob.sync("mm-*/doc.json", {cwd:C.SRC}); + var modules = glob.sync(j(C.MODULE_MASK, "/doc.json"), {cwd:C.SRC}); var moduleList = modules.map(function(name) { return name.replace('/doc.json',''); }); var moduleMap = moduleList.map(function(name) { return {name: name}; }); // Create behaviorsMap - var behaviors = glob.sync(j(C.SRC,'shared/behaviors/*.json')); + var behaviors = glob.sync(j(C.SRC, C.SHARED, '/behaviors/*.json')); var behaviorsMap = {}; behaviors.forEach(function(behavior) { - var behaviorKey = behavior.replace(j(C.SRC,'shared/behaviors/'),'') + var behaviorKey = behavior.replace(j(C.SRC, C.SHARED, '/behaviors/'),'') .replace('.json','') .toLowerCase(); behaviorsMap[behaviorKey] = JSON.parse(fs.readFileSync(behavior)); }); // Create articleList and articleMap - var articles = glob.sync("*.md", {cwd:"./docs/articles/"}); - var articleMap = JSON.parse(fs.readFileSync('./docs/articles/manifest.json')); + var articles = glob.sync("*.md", {cwd:j(C.DOCS, "/articles/")}); + var articleMap = JSON.parse(fs.readFileSync(j(C.DOCS, '/articles/manifest.json'))); var articleList = articles.map(function(article) { - var file = fs.readFileSync('./docs/articles/'+article).toString('utf8'), + var file = fs.readFileSync(j(C.DOCS,'/articles/',article), 'utf8'), name = file.split("\n")[0].replace("#",""), key = path.basename(article, '.md'), link = "article_" + key + ".html"; @@ -414,15 +414,15 @@ gulp.task('docs:templates', function() { }); // Compile partials - var partials = glob.sync("*.html", {cwd:"./docs/", ignore: '(*_template).html'}); + var partials = glob.sync("*.html", {cwd:C.DOCS, ignore: '(*_template).html'}); var partialMap = {}; partials.forEach(function(part) { var name = part.replace('.html',''); - var partialString = fs.readFileSync('./docs/'+part).toString('utf8'); + var partialString = fs.readFileSync(j(C.DOCS,part), 'utf8'); partialMap[name] = hogan.compile(partialString); }); - var indexStream = gulp.src('./docs/index.html') + var indexStream = gulp.src(j(C.DOCS,'/index.html')) .pipe(cache('docs_dex')) .pipe(through.obj(function(file, enc, cb) { // TODO: Put this in a closure @@ -435,15 +435,15 @@ gulp.task('docs:templates', function() { })) .pipe(gulp.dest(C.BUILD_DOCS)); - var moduleStream = gulp.src(j(C.SRC,'mm-*/doc.json')) + var moduleStream = gulp.src(j(C.SRC,C.MODULE_MASK,'/doc.json')) .pipe(cache('docs_module')) .pipe(injectBehaviorDocs(behaviorsMap)) .pipe(injectModuleData(pkg, moduleMap, articleList, articleMap)) .pipe(dbg('docs-modules')) .pipe(through.obj(function(file, enc, cb) { var moduleDoc = JSON.parse(file.contents); - var templatePath = path.join(__dirname,'docs/component_template.html'); - var templateString = fs.readFileSync(templatePath).toString('utf8'); + var templatePath = j(__dirname,C.DOCS,'/component_template.html'); + var templateString = fs.readFileSync(templatePath, 'utf8'); var template = hogan.compile(templateString); var doc = template.render(moduleDoc, partialMap); file.contents = new Buffer(doc, enc); @@ -458,7 +458,7 @@ gulp.task('docs:templates', function() { .pipe(gulp.dest(C.BUILD_DOCS)) .on('error',console.log); - var articleStream = gulp.src('./docs/articles/*.md') + var articleStream = gulp.src(j(C.DOCS,'/articles/*.md')) .pipe(cache('docs_article')) .pipe(marked().on('error',console.log)) .pipe(injectArticleData(pkg, moduleMap, articleList, articleMap)) @@ -481,16 +481,17 @@ gulp.task('gh-pages', function() { /** LIVE **/ gulp.task('watch', function () { - gulp.watch(j(C.SRC,'mm-*/*.scss'), ['sass']); - gulp.watch(j(C.SRC,'mm-*/*.html'), ['copy', 'vulcanize']); + gulp.watch(j(C.SRC, C.MODULE_MASK, '/*.scss'), ['sass']); + gulp.watch(j(C.SRC, C.MODULE_MASK, C.MODULE_HTML), ['copy', 'vulcanize']); + gulp.watch(j(C.SRC, C.SHARED, '**'), ['copy']); }); gulp.task('index', function() { - var modules = glob.sync("mm-*/index.html", {cwd:C.SRC}); + var modules = glob.sync(j(C.MODULE_MASK,"/index.html"), {cwd:C.SRC}); var moduleList = modules.map(function(name) { return name.replace('/index.html',''); }); var moduleMap = {modules: moduleList}; - var templatePath = path.join(__dirname,'gulp/templates/index_template.html'); - var templateString = fs.readFileSync(templatePath).toString('utf8'); + var templatePath = j(__dirname, C.TEMPLATES, '/index_template.html'); + var templateString = fs.readFileSync(templatePath, 'utf8'); var template = hogan.compile(templateString); var index = template.render(moduleMap); fs.writeFileSync(j(C.BUILD,'index.html'), index); @@ -498,7 +499,7 @@ gulp.task('index', function() { gulp.task('server', function() { var server = connect() - .use('/bower_components', serveStatic('./bower_components')) + .use('/bower_components', serveStatic(C.BOWER)) .use(serveStatic(C.BUILD)) .listen(C.LIVE_PORT); @@ -511,7 +512,7 @@ gulp.task('server', function() { gulp.task('live', ['index', 'watch', 'server']); gulp.task('watch:docs', function() { - gulp.watch(['docs/**/*.md', C.SRC + '**/doc.json'], ['docs:templates']); + gulp.watch([j(C.DOCS,'/**/*.md'), C.SRC + '**/doc.json'], ['docs:templates']); }); gulp.task('server:docs', function() {