1 var gulp = require(
'gulp'),
2 sass = require(
'gulp-sass'),
3 autoprefixer = require(
'gulp-autoprefixer'),
4 cssnano = require(
'gulp-cssnano'),
5 jshint = require(
'gulp-jshint'),
6 uglify = require(
'gulp-uglify'),
7 imagemin = require(
'gulp-imagemin'),
8 rename = require(
'gulp-rename'),
9 concat = require(
'gulp-concat'),
10 notify = require(
'gulp-notify'),
11 cache = require(
'gulp-cache'),
12 livereload = require(
'gulp-livereload'),
14 include = require(
'gulp-include'),
15 sourcemaps = require(
'gulp-sourcemaps'),
16 babel = require(
'gulp-babel'),
17 plumber = require(
'gulp-plumber'),
18 gutil = require(
'gulp-util'),
19 insert = require(
'gulp-insert'),
22 var version_no =
"4.5.3",
24 version =
"/* Tabulator v" + version_no +
" (c) Oliver Folkerd */\n";
26 var gulp_src = gulp.src;
27 gulp.src =
function() {
28 return gulp_src.apply(gulp, arguments)
29 .pipe(plumber(
function(error) {
31 gutil.log(gutil.colors.red(
'Error (' + error.plugin +
'): ' + error.message));
39 gulp.task(
'styles',
function() {
40 return gulp.src(
'src/scss/**/tabulator*.scss')
41 .pipe(sourcemaps.init())
42 .pipe(insert.prepend(version +
"\n"))
43 .pipe(sass({outputStyle:
'expanded'}).on(
'error', sass.logError))
44 .pipe(autoprefixer(
'last 4 version'))
45 .pipe(gulp.dest(
'dist/css'))
46 .pipe(rename({suffix:
'.min'}))
47 .pipe(cssnano({zindex:
false}))
48 .pipe(insert.prepend(version))
49 .pipe(sourcemaps.write(
'.'))
50 .pipe(gulp.dest(
'dist/css'))
51 .on(
'end',
function(){ gutil.log(
'Styles task complete'); })
56 gulp.task(
'tabulator',
function() {
58 return gulp.src(
'src/js/core_modules.js')
59 .pipe(insert.prepend(version +
"\n"))
69 "browsers": [
"last 4 versions"]
75 .pipe(concat(
'tabulator.js'))
76 .pipe(gulp.dest(
'dist/js'))
77 .pipe(rename({suffix:
'.min'}))
79 .pipe(insert.prepend(version))
81 .pipe(gulp.dest(
'dist/js'))
83 .on(
'end',
function(){ gutil.log(
'Tabulator Complete'); })
89 gulp.task(
'core',
function() {
90 return gulp.src(
'src/js/core.js')
91 .pipe(insert.prepend(version +
"\n"))
96 "browsers": [
"last 4 versions"]
103 .pipe(concat(
'tabulator_core.js'))
104 .pipe(gulp.dest(
'dist/js'))
105 .pipe(rename({suffix:
'.min'}))
107 .pipe(insert.prepend(version))
108 .pipe(gulp.dest(
'dist/js'))
109 .on(
'end',
function(){ gutil.log(
'Core complete'); })
115 gulp.task(
'modules',
function(){
117 var path = __dirname +
"/src/js/modules/";
119 var files = fs.readdirSync(path);
121 var core = [
"layout.js",
"localize.js",
"comms.js"];
123 files.forEach(
function(file, index){
125 if(!core.includes(file)){
126 return gulp.src(
'src/js/modules/' + file)
127 .pipe(insert.prepend(version +
"\n"))
132 "browsers": [
"last 4 versions"]
140 .pipe(gulp.dest(
'dist/js/modules/'))
141 .pipe(rename({suffix:
'.min'}))
143 .pipe(insert.prepend(version))
144 .pipe(gulp.dest(
'dist/js/modules/'))
151 gulp.task(
'jquery',
function(){
152 return gulp.src(
'src/js/jquery_wrapper.js')
153 .pipe(insert.prepend(version +
"\n"))
158 "browsers": [
"last 4 versions"]
165 .pipe(concat(
'jquery_wrapper.js'))
166 .pipe(gulp.dest(
'dist/js'))
167 .pipe(rename({suffix:
'.min'}))
169 .pipe(insert.prepend(version))
170 .pipe(gulp.dest(
'dist/js'))
171 .on(
'end',
function(){ gutil.log(
'jQuery wrapper complete'); })
176 gulp.task(
'scripts',
function() {
177 gulp.start(
'tabulator');
179 gulp.start(
'modules');
180 gulp.start(
'jquery');
183 gulp.task(
'clean',
function() {
184 return del([
'dist/css',
'dist/js']);
188 gulp.task(
'default', [
'clean'],
function() {
189 gulp.start(
'styles',
'scripts');
193 gulp.task(
'watch',
function() {
196 gulp.watch(
'src/scss/**/*.scss', [
'styles']);
199 gulp.watch(
'src/js/**/*.js', [
'scripts']);