Bug 19474: Convert staff client CSS to SCSS
[koha.git] / gulpfile.js
diff --git a/gulpfile.js b/gulpfile.js
new file mode 100644 (file)
index 0000000..2a868e1
--- /dev/null
@@ -0,0 +1,53 @@
+/* eslint-env node */
+/* eslint no-console:"off" */
+
+let gulp;
+
+try {
+    gulp = require( "gulp" );
+} catch(e) {
+    console.error("You are missing required Node modules; run `npm install`.");
+    process.exit(1);
+}
+
+const gutil = require( "gulp-util" );
+const sass = require("gulp-sass");
+const cssnano = require("gulp-cssnano");
+const sourcemaps = require('gulp-sourcemaps');
+const autoprefixer = require('gulp-autoprefixer');
+
+const STAFF_JS_BASE = "koha-tmpl/intranet-tmpl/prog/js";
+const STAFF_CSS_BASE = "koha-tmpl/intranet-tmpl/prog/css";
+const OPAC_JS_BASE = "koha-tmpl/opac-tmpl/bootstrap/js";
+const OPAC_CSS_BASE = "koha-tmpl/opac-tmpl/bootstrap/css";
+
+var sassOptions = {
+    errLogToConsole: true,
+    precision: 3
+}
+
+gulp.task( "default", ['watch'] );
+
+// CSS processing for development
+gulp.task('css', function() {
+    return gulp.src( STAFF_CSS_BASE + "/src/**/*.scss" )
+      .pipe(sourcemaps.init())
+      .pipe(sass( sassOptions ).on('error', sass.logError))
+      .pipe(autoprefixer())
+      .pipe(sourcemaps.write('./maps'))
+      .pipe(gulp.dest( STAFF_CSS_BASE ));
+});
+
+// CSS processing for production
+
+gulp.task('build', function() {
+    return gulp.src( STAFF_CSS_BASE + "/src/**/*.scss" )
+      .pipe(sass( sassOptions ).on('error', sass.logError))
+      .pipe(autoprefixer())
+      .pipe(cssnano())
+      .pipe(gulp.dest( STAFF_CSS_BASE ));
+});
+
+gulp.task('watch', function(){
+    gulp.watch( STAFF_CSS_BASE + "/src/**/*.scss", ['css'] );
+});
\ No newline at end of file