Могу помочь с вторым вопросом. Т.к. файл конфигурации gulp исполняет node.js мы можем использовать его функционал. Обычно мы пишем что-то типо этого:
var isDev = !process.env.NODE_ENV || process.env.NODE_ENV === 'development';
//переменная true если перменная окружения не установлена или равна development
для того чтобы запустить build в windows надо будет набрать что-то типо этого
NODE_ENV=development gulp
и в самих задачах использовать модуль gulp-if, примерно так
var _if = require('gulp-if');
gulp.task('html', function () {
return gulp.src(path.src.html)
.pipe(gulp.dest(path.dist.html))
.pipe(_if(isDebug,_debug({title:'html'})))
// будем дебажить только если запустили как дебаг
.pipe(reload({stream: true}));
});
В зависимости от перменной мы можем минифицировать или сбрасывать как есть файлы.