});
// Creates a Sass file from the module/variable list and creates foundation.css and foundation.min.css
-gulp.task('customizer:sass', function() {
+gulp.task('customizer:sass', function(done) {
sequence('customizer:loadConfig', 'customizer:prepareSassDeps', function() {
- var sassFile = customizer.sass(CUSTOMIZER_CONFIG, MODULE_LIST, VARIABLE_LIST);
-
- var stream = createStream('foundation.scss', sassFile);
-
- return stream
- .pipe(sass({
- includePaths: [
- 'scss',
- 'node_modules/motion-ui/src'
- ]
- }))
- .pipe(postcss([autoprefixer({
- browsers: COMPATIBILITY
- })]))
- .pipe(gulp.dest(path.join(OUTPUT_DIR, 'css')))
- .pipe(cleancss({ compatibility: 'ie9' }))
- .pipe(rename('foundation.min.css'))
- .pipe(gulp.dest(path.join(OUTPUT_DIR, 'css')));
+ var sassFile = customizer.sass(CUSTOMIZER_CONFIG, MODULE_LIST, VARIABLE_LIST);
+ var stream = createStream('foundation.scss', sassFile);
+
+ return stream
+ .pipe(sass({
+ includePaths: [
+ 'scss',
+ 'node_modules/motion-ui/src'
+ ]
+ }))
+ .pipe(postcss([autoprefixer({
+ browsers: COMPATIBILITY
+ })]))
+ .pipe(gulp.dest(path.join(OUTPUT_DIR, 'css')))
+ .pipe(cleancss({ compatibility: 'ie9' }))
+ .pipe(rename('foundation.min.css'))
+ .pipe(gulp.dest(path.join(OUTPUT_DIR, 'css')))
+ .on('finish', done);
});
});
// - Copying the index.html file
// - Creating a blank app.css file
// - Creating an app.js file with Foundation initialization code
-gulp.task('customizer', function() {
- sequence('customizer:sass', 'customizer:javascript', 'customizer:html', function(done) {
- var outputFolder = path.dirname(OUTPUT_DIR);
- var outputFileName = path.basename(OUTPUT_DIR);
-
- touch(path.join(OUTPUT_DIR, 'css/app.css'));
- touch(path.join(OUTPUT_DIR, 'js/app.js'));
- fs.writeFileSync(path.join(OUTPUT_DIR, 'js/app.js'), '$(document).foundation()\n');
-
- gulp.src(path.join(OUTPUT_DIR, '/**/*'))
- .pipe(zip(path.basename(outputFileName) + '.zip'))
- .pipe(gulp.dest(outputFolder))
- .on('finish', function() {
- rimraf(OUTPUT_DIR, done);
- });
+gulp.task('customizer', function(done) {
+ sequence('customizer:sass', 'customizer:javascript', 'customizer:html', function() {
+ var outputFolder = path.dirname(OUTPUT_DIR);
+ var outputFileName = path.basename(OUTPUT_DIR);
+
+ touch(path.join(OUTPUT_DIR, 'css/app.css'));
+ touch(path.join(OUTPUT_DIR, 'js/app.js'));
+ fs.writeFileSync(path.join(OUTPUT_DIR, 'js/app.js'), '$(document).foundation()\n');
+
+ gulp.src(path.join(OUTPUT_DIR, '/**/*'))
+ .pipe(zip(path.basename(outputFileName) + '.zip'))
+ .pipe(gulp.dest(outputFolder))
+ .on('finish', function() {
+ rimraf(OUTPUT_DIR, done);
+ });
});
});
});
// Generates compiled CSS and JS files and sourcemaps and puts them in the dist/ folder
-gulp.task('deploy:dist', function() {
+gulp.task('deploy:dist', function(done) {
sequence('sass:foundation', 'javascript:foundation', function() {
- var cssFilter = filter(['**/*.css'], { restore: true });
- var jsFilter = filter(['**/*.js'], { restore: true });
- var cssSourcemapFilter = filter(['**/*.css.map'], { restore: true });
- var jsSourcemapFilter = filter(['**/*.js.map'], { restore: true });
-
- return gulp.src(CONFIG.DIST_FILES)
- .pipe(plumber())
-
- // --- Source maps ---
- // * Copy sourcemaps to the dist folder
- // This is done first to avoid collision with minified-sourcemaps.
- .pipe(cssSourcemapFilter)
- .pipe(gulp.dest('./dist/css'))
- .pipe(cssSourcemapFilter.restore)
- .pipe(jsSourcemapFilter)
- .pipe(gulp.dest('./dist/js'))
- .pipe(jsSourcemapFilter.restore)
-
- // --- Source files ---
- // * Copy source files to dist folder
- // * Create minified files
- // * Create minified-sourcemaps based on standard sourcemaps.
- // Sourcemaps are initialized before the ".min" renaming to be able retrieve
- // original sourcemaps from source names.
- .pipe(cssFilter)
- .pipe(gulp.dest('./dist/css'))
- .pipe(sourcemaps.init({ loadMaps: true }))
- .pipe(rename({ suffix: '.min' }))
- .pipe(cleancss({ compatibility: 'ie9' }))
- .pipe(sourcemaps.write('.'))
- .pipe(gulp.dest('./dist/css'))
- .pipe(cssFilter.restore)
-
- .pipe(jsFilter)
- .pipe(gulp.dest('./dist/js'))
- .pipe(sourcemaps.init({ loadMaps: true }))
- .pipe(rename({ suffix: '.min' }))
- .pipe(uglify())
- .pipe(sourcemaps.write('.'))
- .pipe(gulp.dest('./dist/js'));
+ var cssFilter = filter(['**/*.css'], { restore: true });
+ var jsFilter = filter(['**/*.js'], { restore: true });
+ var cssSourcemapFilter = filter(['**/*.css.map'], { restore: true });
+ var jsSourcemapFilter = filter(['**/*.js.map'], { restore: true });
+
+ return gulp.src(CONFIG.DIST_FILES)
+ .pipe(plumber())
+
+ // --- Source maps ---
+ // * Copy sourcemaps to the dist folder
+ // This is done first to avoid collision with minified-sourcemaps.
+ .pipe(cssSourcemapFilter)
+ .pipe(gulp.dest('./dist/css'))
+ .pipe(cssSourcemapFilter.restore)
+ .pipe(jsSourcemapFilter)
+ .pipe(gulp.dest('./dist/js'))
+ .pipe(jsSourcemapFilter.restore)
+
+ // --- Source files ---
+ // * Copy source files to dist folder
+ // * Create minified files
+ // * Create minified-sourcemaps based on standard sourcemaps.
+ // Sourcemaps are initialized before the ".min" renaming to be able retrieve
+ // original sourcemaps from source names.
+ .pipe(cssFilter)
+ .pipe(gulp.dest('./dist/css'))
+ .pipe(sourcemaps.init({ loadMaps: true }))
+ .pipe(rename({ suffix: '.min' }))
+ .pipe(cleancss({ compatibility: 'ie9' }))
+ .pipe(sourcemaps.write('.'))
+ .pipe(gulp.dest('./dist/css'))
+ .pipe(cssFilter.restore)
+
+ .pipe(jsFilter)
+ .pipe(gulp.dest('./dist/js'))
+ .pipe(sourcemaps.init({ loadMaps: true }))
+ .pipe(rename({ suffix: '.min' }))
+ .pipe(uglify())
+ .pipe(sourcemaps.write('.'))
+ .pipe(gulp.dest('./dist/js'))
+
+ .on('finish', done);
});
});
});
// The Customizer runs this function to generate files it needs
-gulp.task('deploy:custom', function() {
+gulp.task('deploy:custom', function(done) {
sequence('sass:foundation', 'javascript:foundation', function() {
- gulp.src('./_build/assets/css/foundation.css')
- .pipe(cleancss({ compatibility: 'ie9' }))
- .pipe(rename('foundation.min.css'))
- .pipe(gulp.dest('./_build/assets/css'));
-
- return gulp.src('_build/assets/js/foundation.js')
- .pipe(uglify())
- .pipe(rename('foundation.min.js'))
- .pipe(gulp.dest('./_build/assets/js'));
+ gulp.src('./_build/assets/css/foundation.css')
+ .pipe(cleancss({ compatibility: 'ie9' }))
+ .pipe(rename('foundation.min.css'))
+ .pipe(gulp.dest('./_build/assets/css'));
+
+ return gulp.src('_build/assets/js/foundation.js')
+ .pipe(uglify())
+ .pipe(rename('foundation.min.js'))
+ .pipe(gulp.dest('./_build/assets/js'))
+ .on('finish', done);
});
});
var CONFIG = require('../config.js');
// Runs unit tests
-gulp.task('test', function(cb) {
- sequence('sass:foundation', 'test:transpile-js', 'watch', function() {
- browser.init({
- server: {
- baseDir: 'test/visual',
- directory: true,
- routes: {
- "/assets": "_build/assets",
- "/motion-ui": "node_modules/motion-ui"
+gulp.task('test', function(done) {
+ sequence('sass:foundation', 'test:transpile-js', 'watch', function () {
+ browser.init({
+ server: {
+ baseDir: 'test/visual',
+ directory: true,
+ routes: {
+ "/assets": "_build/assets",
+ "/motion-ui": "node_modules/motion-ui"
+ }
}
- }
+ });
+ gulp.watch(['test/visual/**/*'], ['test:reload']);
+ done();
});
- gulp.watch(['test/visual/**/*'], ['test:reload']);
-})
});
gulp.task('test:reload', function(done) {
done();
});
-gulp.task('test:transpile-js', function(cb) {
- sequence('javascript:foundation', 'javascript:deps', function() {
- rimraf('test/javascript/js-tests.js');
-
- return gulp.src(CONFIG.TEST_JS_FILES)
- .pipe(babel()
- .on('error', onBabelError))
- .pipe(concat('js-tests.js'))
- .pipe(gulp.dest('test/javascript'));
-})
-});
\ No newline at end of file
+gulp.task('test:transpile-js', function(done) {
+ sequence('javascript:foundation', 'javascript:deps', function () {
+ rimraf('test/javascript/js-tests.js');
+
+ return gulp.src(CONFIG.TEST_JS_FILES)
+ .pipe(babel()
+ .on('error', onBabelError))
+ .pipe(concat('js-tests.js'))
+ .pipe(gulp.dest('test/javascript'))
+ .on('finish', done);
+ });
+});