Archived
1
0
Fork 0

build-tools: switch grunt for gulp.

This commit is contained in:
Henrik Hautakoski 2018-06-25 14:52:45 +02:00
parent e41c7f776a
commit f40b498ffb
No known key found for this signature in database
GPG key ID: 839F3A7EAFAEAFAA
5 changed files with 3482 additions and 102 deletions

View file

@ -1,90 +0,0 @@
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
watch: {
sitecss: {
files: 'app/assets/less/**/*.less',
tasks: 'less:dev'
}
},
less: {
dev: {
files: {
'public/css/application.min.css': 'app/assets/less/application.less'
}
},
production: {
options: {
plugins : [
new (require('less-plugin-clean-css'))({compatibility:'ie8'})
]
},
files: {
'public/css/application.min.css': 'app/assets/less/application.less'
}
}
},
uglify: {
options: {},
jquery: {
files: {
'public/js/jquery-3.0.0.min.js' : [
'node_modules/jquery/dist/jquery.js'
]
}
},
bootstrap: {
files: {
'public/js/bootstrap.min.js': [
'app/assets/js/bootstrap/tooltip.js',
'app/assets/js/bootstrap/affix.js',
'app/assets/js/bootstrap/alert.js',
'app/assets/js/bootstrap/button.js',
'app/assets/js/bootstrap/carousel.js',
'app/assets/js/bootstrap/collapse.js',
'app/assets/js/bootstrap/dropdown.js',
'app/assets/js/bootstrap/modal.js',
'app/assets/js/bootstrap/popover.js',
'app/assets/js/bootstrap/scrollspy.js',
'app/assets/js/bootstrap/tab.js',
'app/assets/js/bootstrap/transition.js'
]
}
},
fontawesome: {
files: {
'public/js/fontawesome.min.js' : [
'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'
]
}
}
}
});
// Load grunt plugins.
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.registerTask('js', ['uglify']);
var target = grunt.option('target') || 'dev';
console.log("Building for: " + target);
grunt.registerTask('less-compile', ['less:' + target]);
// Default task(s).
grunt.registerTask('default', ['less-compile', 'js']);
if (target == 'dev') {
grunt.registerTask('watchless', ['watch:sitecss']);
}
};

View file

@ -258,9 +258,7 @@ class Services extends DiDefault
// Javascript
$manager->collection('js')
->setPrefix('js/')
->addJs('jquery-3.0.0.min.js')
->addJs('bootstrap.min.js')
->addJs('fontawesome.min.js');
->addJs('application.min.js');
return $manager;
}

65
gulpfile.js Normal file
View file

@ -0,0 +1,65 @@
var gulp = require('gulp');
var rename = require('gulp-rename');
var less = require('gulp-less');
var cssminify = require('gulp-csso');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');
// ----------------------------------
// Config
// ----------------------------------
var config = {
lessPattern: 'app/assets/less/**/*.less',
lessSrc: 'app/assets/less/application.less',
cssOutputDir: 'public/css',
jsSrc: [
'node_modules/jquery/dist/jquery.js',
// Bootstrap
'app/assets/js/bootstrap/tooltip.js',
'app/assets/js/bootstrap/affix.js',
'app/assets/js/bootstrap/alert.js',
'app/assets/js/bootstrap/button.js',
'app/assets/js/bootstrap/carousel.js',
'app/assets/js/bootstrap/collapse.js',
'app/assets/js/bootstrap/dropdown.js',
'app/assets/js/bootstrap/modal.js',
'app/assets/js/bootstrap/popover.js',
'app/assets/js/bootstrap/scrollspy.js',
'app/assets/js/bootstrap/tab.js',
'app/assets/js/bootstrap/transition.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'
],
jsOutputDir: 'public/js'
};
// ----------------------------------
// Tasks
// ----------------------------------
gulp.task('build-css', function () {
return gulp.src(config.lessSrc)
.pipe(less())
.pipe(cssminify())
.pipe(rename({ basename: 'application', suffix: '.min'}))
.pipe(gulp.dest(config.cssOutputDir))
});
gulp.task('build-js', function () {
return gulp.src(config.jsSrc)
.pipe(uglify())
.pipe(concat('application.min.js'))
.pipe(gulp.dest(config.jsOutputDir));
});
gulp.task('watch-less', function() {
gulp.watch(config.lessPattern, ['build-css']);
});
gulp.task('build-assets', ['build-css', 'build-js']);
gulp.task('default', ['watch-less']);

3408
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -2,20 +2,19 @@
"name": "httpcb",
"version": "0.1.0",
"description": "HTTP Callback Tool",
"main": "Gruntfile.js",
"dependencies": {
"grunt-cli": "^1.2.0",
"grunt-contrib-concat": "^1.0.1",
"grunt-contrib-less": "^1.3.0",
"grunt-contrib-uglify": "^2.0.0",
"less-plugin-clean-css": "^1.5.1",
"jquery": "~3.0.0"
},
"devDependencies": {
"grunt": "^1.0.1",
"grunt-contrib-watch": "^1.0.0"
"jquery": "~3.0.0",
"gulp": "^3.9.1",
"gulp-concat": "^2.6.1",
"gulp-csso": "^3.0.1",
"gulp-less": "^3.5.0",
"gulp-rename": "^1.3.0",
"gulp-uglify": "^3.0.0"
},
"scripts": {
"build": "gulp all",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Henrik Hautakoski <henrik.hautakoski@gmail.com>",