]> git.ipfire.org Git - thirdparty/foundation/foundation-sites.git/commitdiff
Reorganize gulp files
authorNicolas Coden <nicolas@ncoden.fr>
Wed, 16 Nov 2016 16:58:15 +0000 (17:58 +0100)
committerNicolas Coden <nicolas@ncoden.fr>
Wed, 16 Nov 2016 16:58:15 +0000 (17:58 +0100)
Major changes:
- move all config variables from gulp files to `gulp/config.js`
- move gulp task files to `gulp/tasks`
- move `doiuse` gulp task  to `gulp/tasks/check.js`

Other changes:
- rename some config variables

13 files changed:
gulp/config.js [new file with mode: 0644]
gulp/tasks/babel-error.js [moved from gulp/babel-error.js with 100% similarity]
gulp/tasks/check.js [new file with mode: 0644]
gulp/tasks/clean.js [moved from gulp/clean.js with 100% similarity]
gulp/tasks/copy.js [moved from gulp/copy.js with 52% similarity]
gulp/tasks/customizer.js [moved from gulp/customizer.js with 95% similarity]
gulp/tasks/deploy.js [moved from gulp/deploy.js with 90% similarity]
gulp/tasks/docs.js [moved from gulp/docs.js with 100% similarity]
gulp/tasks/javascript.js [moved from gulp/javascript.js with 58% similarity]
gulp/tasks/lint.js [moved from gulp/lint.js with 83% similarity]
gulp/tasks/sass.js [moved from gulp/sass.js with 66% similarity]
gulp/tasks/test.js [moved from gulp/test.js with 89% similarity]
gulpfile.js

diff --git a/gulp/config.js b/gulp/config.js
new file mode 100644 (file)
index 0000000..ae37034
--- /dev/null
@@ -0,0 +1,77 @@
+module.exports = {
+
+  // Javascript
+  JS_FILES: [
+  'js/foundation.core.js',
+  'js/foundation.util.*.js',
+  'js/*.js'
+  ],
+
+  JS_DEPS: [
+    'node_modules/jquery/dist/jquery.js',
+    'node_modules/motion-ui/dist/motion-ui.js',
+    'node_modules/what-input/what-input.js'
+  ],
+
+  JS_DOCS: [
+    'node_modules/clipboard/dist/clipboard.js',
+    'node_modules/corejs-typeahead/dist/typeahead.bundle.js',
+    'node_modules/foundation-docs/js/**/*.js',
+    'docs/assets/js/docs.*.js',
+    'docs/assets/js/docs.js'
+  ],
+
+  // Sass
+  SASS_DEPS_PATHS: [
+    'node_modules/normalize-scss/sass'
+  ],
+
+  SASS_DOC_PATHS: [
+    'scss',
+    'node_modules/motion-ui/src',
+    'node_modules/foundation-docs/scss'
+  ],
+
+  SASS_LINT_FILES: [
+    'scss/**/*.scss',
+  ],
+
+  CSS_COMPATIBILITY: [
+    'last 2 versions',
+    'ie >= 9',
+    'Android >= 2.3',
+    'ios >= 7'
+  ],
+
+  // Assets
+  ASSETS_FILES: [
+    'docs/assets/**/*',
+    '!docs/assets/{js,scss}',
+    '!docs/assets/{js,scss}/**/*'
+  ],
+
+  // Dist
+  VERSIONED_FILES: [
+    'bower.json',
+    'composer.json',
+    'docs/pages/installation.md',
+    'js/foundation.core.js',
+    'meteor-README.md',
+    'package.js',
+    'package.json',
+    'scss/foundation.scss'
+  ],
+
+  DIST_FILES: [
+    './_build/assets/css/foundation.css',
+    './_build/assets/css/foundation-flex.css',
+    './_build/assets/css/foundation-rtl.css',
+    '_build/assets/js/foundation.js'
+  ],
+
+  // Tests
+  TEST_JS_FILES: [
+    'test/javascript/components/**/*.js',
+    'test/javascript/util/**/*.js'
+  ]
+};
diff --git a/gulp/tasks/check.js b/gulp/tasks/check.js
new file mode 100644 (file)
index 0000000..f5d4126
--- /dev/null
@@ -0,0 +1,18 @@
+'use strict';
+
+var gulp = require('gulp');
+var postcss = require('gulp-postcss');
+var doiuse = require('doiuse');
+
+var CONFIG = require('../config.js');
+
+// Check browser support
+gulp.task('check:browserSupport', function() {
+  return gulp.src(['_build/assets/css/foundation.css'])
+    .pipe(postcss([doiuse({
+      browsers: CONFIG.COMPATIBILITY,
+      onFeatureUsage: function (usageInfo) {
+        console.log(usageInfo.message)
+      }
+    })]))
+});
similarity index 100%
rename from gulp/clean.js
rename to gulp/tasks/clean.js
similarity index 52%
rename from gulp/copy.js
rename to gulp/tasks/copy.js
index 2cbfb8cfe103c2e011625f4bee9bbc9f1022cd55..bdd94eee811623dd0e6a125d49fab47c7e8d780d 100644 (file)
@@ -1,13 +1,9 @@
 var gulp = require('gulp');
 
-var FILES = [
-  'docs/assets/**/*',
-  '!docs/assets/{js,scss}',
-  '!docs/assets/{js,scss}/**/*'
-];
+var CONFIG = require('../config.js');
 
 // Copies static assets
 gulp.task('copy', function() {
-  gulp.src(FILES)
+  gulp.src(CONFIG.ASSETS_FILES)
     .pipe(gulp.dest('_build/assets'));
 });
similarity index 95%
rename from gulp/customizer.js
rename to gulp/tasks/customizer.js
index 9d455cf6591998700900a7ba2f69807015a82c7e..ea53e0ffde937b6726a411faa6795c31253f53ae 100644 (file)
@@ -2,7 +2,7 @@ var addSrc = require('gulp-add-src');
 var babel = require('gulp-babel');
 var concat = require('gulp-concat');
 var cssnano = require('gulp-cssnano');
-var customizer = require('../customizer/lib');
+var customizer = require('../../customizer/lib');
 var File = require('vinyl');
 var fs = require('fs');
 var gulp = require('gulp');
@@ -22,7 +22,7 @@ var yargs = require('yargs');
 var zip = require('gulp-zip');
 
 var ARGS = require('yargs').argv;
-var FOUNDATION_VERSION = require('../package.json').version;
+var FOUNDATION_VERSION = require('../../package.json').version;
 var OUTPUT_DIR = ARGS.output || 'custom-build';
 var COMPATIBILITY = [
   'last 2 versions',
@@ -36,7 +36,7 @@ var VARIABLE_LIST;
 // Load the configuration file for the customizer. It's a list of modules to load and Sass variables to override
 gulp.task('customizer:loadConfig', function(done) {
   fs.readFile('customizer/config.yml', function(err, data) {
-    var moduleListPath = ARGS.modules || '../customizer/complete';
+    var moduleListPath = ARGS.modules || 'customizer/complete';
     var moduleList = require(moduleListPath);
 
     CUSTOMIZER_CONFIG = yaml(data.toString());
similarity index 90%
rename from gulp/deploy.js
rename to gulp/tasks/deploy.js
index ec67d11fd95b7a73754087975521b91c3dccaa10..b255c3f2d820fcc411b64efef6ae033713693728 100644 (file)
@@ -13,25 +13,8 @@ var inquirer = require('inquirer');
 var exec = require('child_process').execSync;
 var plumber = require('gulp-plumber');
 
-var VERSIONED_FILES = [
-  'bower.json',
-  'composer.json',
-  'docs/pages/installation.md',
-  'js/foundation.core.js',
-  'meteor-README.md',
-  'package.js',
-  'package.json',
-  'scss/foundation.scss'
-];
-
-var DIST_FILES = [
-  './_build/assets/css/foundation.css',
-  './_build/assets/css/foundation-flex.css',
-  './_build/assets/css/foundation-rtl.css',
-  '_build/assets/js/foundation.js'
-];
-
-var CURRENT_VERSION = require('../package.json').version;
+var CONFIG = require('../config.js');
+var CURRENT_VERSION = require('../../package.json').version;
 var NEXT_VERSION;
 
 gulp.task('deploy', function(cb) {
@@ -56,7 +39,7 @@ gulp.task('deploy:prompt', function(cb) {
 
 // Bumps the version number in any file that has one
 gulp.task('deploy:version', function() {
-  return gulp.src(VERSIONED_FILES, { base: process.cwd() })
+  return gulp.src(CONFIG.VERSIONED_FILES, { base: process.cwd() })
     .pipe(replace(CURRENT_VERSION, NEXT_VERSION))
     .pipe(gulp.dest('.'));
 });
@@ -66,7 +49,7 @@ gulp.task('deploy:dist', ['sass:foundation', 'javascript:foundation'], function(
   var cssFilter = filter(['*.css'], { restore: true });
   var jsFilter  = filter(['*.js'], { restore: true });
 
-  return gulp.src(DIST_FILES)
+  return gulp.src(CONFIG.DIST_FILES)
     .pipe(plumber())
     .pipe(cssFilter)
       .pipe(gulp.dest('./dist/css'))
similarity index 100%
rename from gulp/docs.js
rename to gulp/tasks/docs.js
similarity index 58%
rename from gulp/javascript.js
rename to gulp/tasks/javascript.js
index 51e0891554aae2b77999426845714dfe09deb89f..052c3ed71ad60c86c094e3cac132cc28e16ad61a 100644 (file)
@@ -3,31 +3,13 @@ var concat = require('gulp-concat');
 var babel = require('gulp-babel');
 var onBabelError = require('./babel-error.js');
 
-var FOUNDATION = [
-  'js/foundation.core.js',
-  'js/foundation.util.*.js',
-  'js/*.js'
-];
-
-var DEPS = [
-  'node_modules/jquery/dist/jquery.js',
-  'node_modules/motion-ui/dist/motion-ui.js',
-  'node_modules/what-input/what-input.js'
-];
-
-var DOCS = [
-  'node_modules/clipboard/dist/clipboard.js',
-  'node_modules/corejs-typeahead/dist/typeahead.bundle.js',
-  'node_modules/foundation-docs/js/**/*.js',
-  'docs/assets/js/docs.*.js',
-  'docs/assets/js/docs.js'
-];
+var CONFIG = require('../config.js');
 
 // Compiles JavaScript into a single file
 gulp.task('javascript', ['javascript:foundation', 'javascript:deps', 'javascript:docs']);
 
 gulp.task('javascript:foundation', function() {
-  return gulp.src(FOUNDATION)
+  return gulp.src(CONFIG.JS_FILES)
     .pipe(babel()
       .on('error', onBabelError))
     .pipe(gulp.dest('_build/assets/js/plugins'))
@@ -36,13 +18,13 @@ gulp.task('javascript:foundation', function() {
 });
 
 gulp.task('javascript:deps', function() {
-  return gulp.src(DEPS)
+  return gulp.src(CONFIG.JS_DEPS)
     .pipe(concat('vendor.js'))
     .pipe(gulp.dest('_build/assets/js'));
 });
 
 gulp.task('javascript:docs', function() {
-  return gulp.src(DOCS)
+  return gulp.src(CONFIG.JS_DOCS)
     .pipe(concat('docs.js'))
     .pipe(gulp.dest('_build/assets/js'));
 });
similarity index 83%
rename from gulp/lint.js
rename to gulp/tasks/lint.js
index 118263a7d32231f80d42afed779ead1702980d13..b7b908729e7587b482e438bb2a2cb0c40fb1a5a9 100644 (file)
@@ -3,16 +3,13 @@ var plumber = require('gulp-plumber');
 var sassLint = require('gulp-sass-lint');
 var eslint = require('gulp-eslint');
 
-var PATHS = [
-  'scss/**/*.scss',
-  '!scss/components_old/**/*.scss'
-];
+var CONFIG = require('../config.js');
 
 // Lints Sass and JavaScript files for formatting issues
 gulp.task('lint', ['lint:sass', 'lint:javascript']);
 
 gulp.task('lint:sass', function() {
-  return gulp.src(PATHS)
+  return gulp.src(CONFIG.SASS_LINT_FILES)
     .pipe(plumber())
     .pipe(sassLint({
       config: './.sass-lint.yml'
@@ -22,7 +19,7 @@ gulp.task('lint:sass', function() {
 });
 
 gulp.task('lint:javascript', function () {
-    return gulp.src(['js/*.js'])
+    return gulp.src([CONFIG.JS_FILES])
         .pipe(eslint({
                useEslintrc: true,
                configFile: '.eslintrc'
similarity index 66%
rename from gulp/sass.js
rename to gulp/tasks/sass.js
index 912af19b9f33f1c8d1dc549d88e422f13a968262..5f0ffaeba3376474399d1122ad77b2d197ff0948 100644 (file)
@@ -9,29 +9,8 @@ var autoprefixer = require('gulp-autoprefixer');
 var plumber = require('gulp-plumber');
 var sourcemaps = require('gulp-sourcemaps');
 var sassLint = require('gulp-sass-lint');
-var doiuse = require('doiuse');
-var postcss = require('gulp-postcss');
 
-var PATHS = [
-  'scss',
-  'node_modules/normalize-scss/sass'
-];
-
-var DOC_PATHS = PATHS.concat([
-  'node_modules/motion-ui/src',
-  'node_modules/foundation-docs/scss'
-]);
-
-var LINT_PATHS = [
-  'scss/**/*.scss'
-];
-
-var COMPATIBILITY = [
-  'last 2 versions',
-  'ie >= 9',
-  'Android >= 2.3',
-  'ios >= 7'
-];
+var CONFIG = require('../config.js');
 
 // Compiles Sass files into CSS
 gulp.task('sass', ['sass:foundation', 'sass:docs']);
@@ -42,15 +21,15 @@ gulp.task('sass:foundation', function() {
     .pipe(sourcemaps.init())
     .pipe(plumber())
     .pipe(sass({
-      includePaths: PATHS
+      includePaths: CONFIG.SASS_DEPS_PATHS
     }).on('error', sass.logError))
     .pipe(autoprefixer({
-      browsers: COMPATIBILITY
+      browsers: CONFIG.CSS_COMPATIBILITY
     }))
     .pipe(sourcemaps.write('.'))
     .pipe(gulp.dest('_build/assets/css'))
     .on('finish', function() {
-      gulp.src(LINT_PATHS)
+      gulp.src(CONFIG.SASS_LINT_FILES)
         .pipe(sassLint({
             config: './.sass-lint.yml'
           }))
@@ -63,10 +42,10 @@ gulp.task('sass:docs', function() {
   return gulp.src('docs/assets/scss/docs.scss')
     .pipe(sourcemaps.init())
     .pipe(sass({
-      includePaths: DOC_PATHS
+      includePaths: CONFIG.SASS_DEPS_PATHS.concat(CONFIG.SASS_DOC_PATHS)
     }).on('error', sass.logError))
     .pipe(autoprefixer({
-      browsers: COMPATIBILITY
+      browsers: CONFIG.CSS_COMPATIBILITY
     }))
     .pipe(sourcemaps.write('.'))
     .pipe(gulp.dest('_build/assets/css'));
@@ -81,14 +60,3 @@ gulp.task('sass:audit', ['sass:foundation'], function(cb) {
     cb();
   });
 });
-
-// Check browsers incompatibilities
-gulp.task('sass:doiuse', function() {
-  return gulp.src(['_build/assets/css/foundation.css'])
-    .pipe(postcss([doiuse({
-      browsers: COMPATIBILITY,
-      onFeatureUsage: function (usageInfo) {
-        console.log(usageInfo.message)
-      }
-    })]))
-});
similarity index 89%
rename from gulp/test.js
rename to gulp/tasks/test.js
index ef1738aa869461d97f91005f02ff88af8d2a0838..d613610250ef231f47c79219762f0ed3c80b689a 100644 (file)
@@ -7,10 +7,7 @@ var babel = require('gulp-babel');
 var onBabelError = require('./babel-error.js');
 var rimraf = require('rimraf').sync;
 
-var JSTESTS = [
-  'test/javascript/components/**/*.js',
-  'test/javascript/util/**/*.js'
-];
+var CONFIG = require('../config.js');
 
 // Runs unit tests
 gulp.task('test', ['sass:foundation', 'test:transpile-js', 'watch'], function() {
@@ -35,7 +32,7 @@ gulp.task('test:reload', function(done) {
 gulp.task('test:transpile-js', ['javascript:foundation', 'javascript:deps'], function() {
   rimraf('test/javascript/js-tests.js');
   
-  return gulp.src(JSTESTS)
+  return gulp.src(CONFIG.TEST_JS_FILES)
        .pipe(babel()
                .on('error', onBabelError))
        .pipe(concat('js-tests.js'))
index f090b5a1bb6eca387a0105da1d7742ef29775216..a66c002e121405a7a66b1f63bb3ae96306ffe1a5 100644 (file)
@@ -3,7 +3,7 @@ var browser = require('browser-sync');
 var requireDir = require('require-dir');
 var port = process.env.SERVER_PORT || 3000;
 
-requireDir('./gulp');
+requireDir('./gulp/tasks');
 
 // Builds the documentation and framework files
 gulp.task('build', ['clean', 'copy', 'docs:all', 'sass', 'javascript']);