dojo-theme-bigur
Version:
Theme for dojo & dijit
134 lines (114 loc) • 3.72 kB
JavaScript
// ===========================================================================
// Инициализируем плагины
// ===========================================================================
var gulp = require('gulp'),
uglify = require('gulp-uglify'),
sass = require('gulp-sass'),
cssmin = require('gulp-clean-css'),
sourcemaps = require('gulp-sourcemaps'),
browserSync = require('browser-sync'),
clean = require('gulp-clean'),
sequence = require('gulp-sequence'),
fontgen = require('gulp-fontgen'),
pug = require('gulp-pug'),
reload = browserSync.reload;
// ===========================================================================
// Настройки
// ===========================================================================
var config = {
theme: 'default',
src: {
html : './test/**/*.pug',
css : './src/**/*.scss',
images : './test/**/*.png',
fonts : {
gilroy : 'fonts/**/*.otf',
awesome : 'node_modules/font-awesome/fonts/*.*',
},
},
watch: {
html : './test/**/*.pug',
css : './src/**/*.scss',
},
build: {
root : './build',
html : './build',
css : './build',
images : './build',
fonts : './build/fonts',
},
server: {
server: {
baseDir: './build',
routes: {
'/lib/dojo-theme-bigur' : './build',
'/lib/dojo' : './node_modules/dojo',
'/lib/dijit' : './node_modules/dijit',
'/lib/dgrid' : './node_modules/dgrid',
'/lib/dstore' : './node_modules/dojo-dstore',
},
},
tunnel: false,
open: false,
port: 9001,
}
}
// ===========================================================================
// Очистка сборки
// ===========================================================================
gulp.task('clean', function() {
return gulp.src([config.build.root], {read: false}).pipe(clean());
});
// ===========================================================================
// Сборка шрифтов
// ===========================================================================
gulp.task('build:fonts:awesome', function() {
return gulp.src(config.src.fonts.awesome)
.pipe(gulp.dest(config.build.fonts));
});
gulp.task('build:fonts:gilroy', function() {
return gulp.src(config.src.fonts.gilroy)
.pipe(fontgen({dest: config.build.fonts}));
});
gulp.task('build:fonts', sequence([
'build:fonts:awesome',
'build:fonts:gilroy',
]));
// ===========================================================================
// Сборка проекта
// ===========================================================================
gulp.task('build:html', function() {
return gulp.src(config.src.html)
.pipe(pug({pretty:true}))
.pipe(gulp.dest(config.build.html))
.pipe(reload({stream: true}));
});
gulp.task('build:css', function() {
return gulp.src(config.src.css)
//.pipe(sourcemaps.init())
.pipe(sass({
includePaths: [
'./src/variants/' + config.theme,
'./src/fonts',
'./node_modules/font-awesome/scss',
]
}))
.pipe(cssmin())
//.pipe(sourcemaps.write('maps'))
.pipe(gulp.dest(config.build.css))
.pipe(reload({stream: true}));
});
gulp.task('build:images', function() {
return gulp.src(config.src.images)
.pipe(gulp.dest(config.build.images))
.pipe(reload({stream: true}));
});
gulp.task('watch', function () {
gulp.watch(config.watch.html, ['build:html']);
gulp.watch(config.watch.css, ['build:css']);
});
gulp.task('server', function () {
browserSync.init(config.server);
});
gulp.task('build', ['build:html', 'build:css', 'build:images']);
gulp.task('default', sequence('build', ['server', 'watch']));