var path = {
vendor: {
js: 'app/js/',
css: 'app/css/'
},
dist: { //Тут мы укажем куда складывать готовые после сборки файлы
html: 'dist/',
js: 'dist/js/',
scss: 'dist/css/',
css: 'dist/css/',
img: 'dist/img/',
fonts: 'dist/fonts/'
},
app: { //Пути откуда брать исходники
html: 'app/*.html', //Синтаксис src/*.html говорит gulp что мы хотим взять все файлы с расширением .html
js: 'app/js/*.js',//В стилях и скриптах нам понадобятся только main файлы
scss: 'app/css/*.scss',
css: 'app/css/*.css',
img: 'app/img/**/*.*', //Синтаксис img/**/*.* означает - взять все файлы всех расширений из папки и из вложенных каталогов
fonts: 'app/fonts/**/*.*'
},
watch: { //Тут мы укажем, за изменением каких файлов мы хотим наблюдать
html: 'app/**/*.html',
js: 'app/js/**/*.js',
scss: 'app/css/**/*.scss',
css: 'app/css/**/*.css',
img: 'app/img/**/*.*',
fonts: 'app/fonts/**/*.*'
},
clean: './dist'
};
gulp.task('vendorJs:build', function () {
gulp.src( mainBowerFiles('**/*.js') ) //Выберем файлы по нужному пути
.pipe(gulp.dest(path.vendor.js)) //Выплюнем готовый файл в app
});
gulp.task('vendorCss:build', function () {
gulp.src( mainBowerFiles('**/*.css') ) //Выберем файлы по нужному пути
.pipe(gulp.dest(path.vendor.css)) //И в app
});
gulp.task('html:build', function () {
gulp.src(path.app.html) //Выберем файлы по нужному пути
.pipe(gulp.dest(path.dist.html)) //Выплюнем их в папку build
.pipe(reload({stream: true})); //И перезагрузим наш сервер для обновлений
});
gulp.task('js:build', function () {
gulp.src(path.app.js) //Найдем наш main файл
.pipe(sourcemaps.init()) //Инициализируем sourcemap
.pipe(uglify()) //Сожмем наш js
.pipe(sourcemaps.write()) //Пропишем карты
.pipe(gulp.dest(path.dist.js)) //Выплюнем готовый файл в build
.pipe(reload({stream: true})); //И перезагрузим сервер
});
gulp.task('scss:build', function () {
gulp.src(path.app.scss) //Выберем наш main.scss
.pipe(sourcemaps.init()) //То же самое что и с js
.pipe(sass()) //Скомпилируем
.pipe(prefixer()) //Добавим вендорные префиксы
.pipe(cleanCSS()) //Сожмем
.pipe(sourcemaps.write())
.pipe(gulp.dest(path.dist.scss)) //И в build
.pipe(reload({stream: true}));
});
gulp.task('css:build', function () {
gulp.src(path.app.css) //Выберем наш main.css
.pipe(sourcemaps.init()) //То же самое что и с js
.pipe(gulp.dest(path.dist.css)) //И в build
.pipe(reload({stream: true}));
});
gulp.task('image:build', function () {
gulp.src(path.app.img) //Выберем наши картинки
.pipe(imagemin({ //Сожмем их
progressive: true,
svgoPlugins: [{removeViewBox: false}],
use: [pngquant()],
interlaced: true
}))
.pipe(gulp.dest(path.dist.img)) //И бросим в build
.pipe(reload({stream: true}));
});