Index: gulpfile.js |
=================================================================== |
--- a/gulpfile.js |
+++ b/gulpfile.js |
@@ -13,25 +13,93 @@ |
* GNU General Public License for more details. |
* |
* You should have received a copy of the GNU General Public License |
* along with help.eyeo.com. If not, see <http://www.gnu.org/licenses/>. |
*/ |
const gulp = require('gulp'); |
const gutil = require('gulp-util'); |
+const sourcemaps = require('gulp-sourcemaps'); |
+const rename = require('gulp-rename'); |
+ |
+/****************************************************************************** |
+ * CSS |
+ ******************************************************************************/ |
+ |
const sass = require('gulp-sass'); |
const postcss = require('gulp-postcss'); |
const scss = require('postcss-scss'); |
const autoprefixer = require('autoprefixer'); |
+const cleanCSS = require('gulp-clean-css'); |
-gulp.task('css', function() { |
- return gulp.src('./static/scss/main.scss') |
- .pipe(postcss([autoprefixer()], {syntax: scss}).on('error', gutil.log)) |
- .pipe(sass().on('error', gutil.log)) |
- .pipe(gulp.dest('./static/css')); |
+const entryScssFile = 'main'; |
+ |
+gulp.task('css', ['css-default', 'css-minified']); |
+ |
+/* Expanded CSS |
+ ******************************************************************************/ |
+ |
+gulp.task('css-default', function() { |
+ return gulp.src(`./static/src/scss/${entryScssFile}.scss`) |
+ .pipe(sourcemaps.init()) |
+ .pipe(postcss([autoprefixer()], {syntax: scss}).on('error', gutil.log)) |
+ .pipe(sass().on('error', gutil.log)) |
+ .pipe(sourcemaps.write('./')) |
+ .pipe(gulp.dest('./static/dist/css')) |
+}); |
+ |
+/* Minified CSS |
+ ******************************************************************************/ |
+ |
+gulp.task('css-minified', function() { |
+ return gulp.src(`./static/src/scss/${entryScssFile}.scss`) |
+ .pipe(sourcemaps.init()) |
+ .pipe(postcss([autoprefixer()], {syntax: scss}).on('error', gutil.log)) |
+ .pipe(sass({outputStyle: 'compressed'}).on('error', gutil.log)) |
+ .pipe(rename(`${entryScssFile}.min.css`)) |
+ .pipe(sourcemaps.write('./')) |
+ .pipe(gulp.dest('./static/dist/css')); |
}); |
-gulp.task('watch', function() { |
- gulp.watch('./static/scss/**/*.scss', ['css']); |
+/****************************************************************************** |
+ * JS |
+ ******************************************************************************/ |
+ |
+const minify = require('gulp-minify'); |
+ |
+gulp.task('js', function() { |
+ return gulp.src(['./static/src/js/*.js']) |
+ .pipe(sourcemaps.init()) |
+ .pipe(minify({ |
+ ext: {src:'.js', min:'.min.js'}, |
+ preserveComments: 'some' |
+ })) |
+ .pipe(sourcemaps.write('./')) |
+ .pipe(gulp.dest('./static/dist/js')) |
}); |
-gulp.task('default', ['css', 'watch']); |
+gulp.task('js-vendor', function() { |
+ return gulp.src(['./static/src/js/vendor/*.js']) |
+ .pipe(sourcemaps.init()) |
+ .pipe(minify({ |
+ ext: {src:'.js', min:'.min.js'}, |
+ preserveComments: 'some' |
+ })) |
+ .pipe(sourcemaps.write('./')) |
+ .pipe(gulp.dest('./static/dist/js/vendor')) |
+}); |
+ |
+/****************************************************************************** |
+ * Watch |
+ ******************************************************************************/ |
+ |
+gulp.task('watch', function() { |
+ gulp.watch('./static/src/scss/**/*.scss', ['css']); |
+ gulp.watch('./static/src/js/*.js', ['js']); |
+ gulp.watch('./static/src/js/vendor/*.js', ['js-vendor']); |
+}); |
+ |
+/****************************************************************************** |
+ * Default |
+ ******************************************************************************/ |
+ |
+gulp.task('default', ['css', 'js', 'js-vendor', 'watch']); |