62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
|
|
var gulp = require('gulp');
|
|
var rename = require('gulp-rename');
|
|
var sass = require('gulp-sass');
|
|
var cssminify = require('gulp-csso');
|
|
var concat = require('gulp-concat');
|
|
var uglify = require('gulp-uglify');
|
|
|
|
// ----------------------------------
|
|
// Config
|
|
// ----------------------------------
|
|
|
|
var config = {
|
|
sass: {
|
|
pattern: 'app/assets/sass/**/*.scss',
|
|
src: 'app/assets/sass/application.scss',
|
|
opt: {
|
|
includePaths: [ 'node_modules/bootstrap-sass/assets/stylesheets' ]
|
|
},
|
|
outputDir: 'public/css',
|
|
outputName: 'application'
|
|
},
|
|
js: {
|
|
src: [
|
|
'node_modules/jquery/dist/jquery.js',
|
|
// Bootstrap
|
|
'node_modules/bootstrap-sass/assets/javascripts/bootstrap.js',
|
|
// Font Awesome
|
|
'app/assets/js/font-awesome/fa-regular.js',
|
|
'app/assets/js/font-awesome/fa-solid.js',
|
|
'app/assets/js/font-awesome/fa-brands.js',
|
|
'app/assets/js/font-awesome/fontawesome.js'
|
|
],
|
|
outputDir: 'public/js'
|
|
}
|
|
};
|
|
|
|
// ----------------------------------
|
|
// Tasks
|
|
// ----------------------------------
|
|
|
|
gulp.task('build-css', function () {
|
|
return gulp.src(config.sass.src)
|
|
.pipe(sass(config.sass.opt))
|
|
.pipe(cssminify())
|
|
.pipe(rename({ basename: config.sass.outputName, suffix: '.min'}))
|
|
.pipe(gulp.dest(config.sass.outputDir))
|
|
});
|
|
|
|
gulp.task('watch-sass', function() {
|
|
gulp.watch(config.sass.pattern, ['build-css']);
|
|
});
|
|
|
|
gulp.task('build-js', function () {
|
|
return gulp.src(config.js.src)
|
|
.pipe(uglify())
|
|
.pipe(concat('application.min.js'))
|
|
.pipe(gulp.dest(config.js.outputDir));
|
|
});
|
|
|
|
gulp.task('build-assets', ['build-css', 'build-js']);
|
|
gulp.task('default', ['watch-sass']);
|