--- /dev/null
+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'
+ ]
+};
--- /dev/null
+'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)
+ }
+ })]))
+});
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'));
});
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');
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',
// 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());
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) {
// 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('.'));
});
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'))
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'))
});
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'));
});
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'
});
gulp.task('lint:javascript', function () {
- return gulp.src(['js/*.js'])
+ return gulp.src([CONFIG.JS_FILES])
.pipe(eslint({
useEslintrc: true,
configFile: '.eslintrc'
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']);
.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'
}))
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'));
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)
- }
- })]))
-});
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() {
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'))
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']);