var inquirer = require('inquirer');
var exec = require('child_process').execSync;
var plumber = require('gulp-plumber');
+var sourcemaps = require('gulp-sourcemaps');
var CONFIG = require('../config.js');
var CURRENT_VERSION = require('../../package.json').version;
.pipe(gulp.dest('.'));
});
-// Generates compiled CSS and JS files and puts them in the dist/ folder
+// Generates compiled CSS and JS files and sourcemaps and puts them in the dist/ folder
gulp.task('deploy:dist', ['sass:foundation', 'javascript:foundation'], function() {
var cssFilter = filter(['**/*.css'], { restore: true });
- var sourcemapFilter = filter(['**/*.css.map'], { restore: true });
var jsFilter = filter(['**/*.js'], { restore: true });
+ var cssSourcemapFilter = filter(['**/*.css.map'], { restore: true });
+ var jsSourcemapFilter = filter(['**/*.js.map'], { restore: true });
- console.log(CONFIG.DIST_FILES)
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(cleancss({ compatibility: 'ie9' }))
+ .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(sourcemapFilter)
- .pipe(gulp.dest('./dist/css'))
- .pipe(sourcemapFilter.restore)
+ .pipe(cssFilter.restore)
+
.pipe(jsFilter)
.pipe(gulp.dest('./dist/js'))
- .pipe(uglify())
+ .pipe(sourcemaps.init({ loadMaps: true }))
.pipe(rename({ suffix: '.min' }))
+ .pipe(uglify())
+ .pipe(sourcemaps.write('.'))
.pipe(gulp.dest('./dist/js'));
});
var webpackStream = require('webpack-stream');
var webpack2 = require('webpack');
var named = require('vinyl-named');
+var sourcemaps = require('gulp-sourcemaps');
var CONFIG = require('../config.js');
// See https://github.com/zurb/foundation-sites/pull/10903
// ---
// libraryTarget: 'umd',
- }
+ },
+ // https://github.com/shama/webpack-stream#source-maps
+ devtool: 'source-map'
}
// Core has to be dealt with slightly differently due to bootstrapping externals
gulp.task('javascript:plugin-core', function() {
return gulp.src('js/entries/plugins/foundation.core.js')
.pipe(named())
+ .pipe(sourcemaps.init())
.pipe(webpackStream(webpackConfig, webpack2))
+ .pipe(sourcemaps.write('.'))
.pipe(gulp.dest('_build/assets/js/plugins'));
});
gulp.task('javascript:plugins', ['javascript:plugin-core'], function () {
return gulp.src(['js/entries/plugins/*.js', '!js/entries/plugins/foundation.core.js'])
.pipe(named())
+ .pipe(sourcemaps.init())
.pipe(webpackStream(Object.assign({}, webpackConfig, { externals: pluginsAsExternals }), webpack2))
+ .pipe(sourcemaps.write('.'))
.pipe(gulp.dest('_build/assets/js/plugins'));
});
gulp.task('javascript:foundation', ['javascript:plugins'], function() {
return gulp.src('js/entries/foundation.js')
.pipe(named())
+ .pipe(sourcemaps.init())
.pipe(webpackStream(webpackConfig, webpack2))
+ .pipe(sourcemaps.write('.'))
.pipe(gulp.dest('_build/assets/js'));
});
//gulp.task('javascript:foundation', function() {