Passed configuration to gulp, due to grunt limitations
This commit is contained in:
parent
0298b7bf91
commit
046a419c31
28
Gruntfile.js
28
Gruntfile.js
@ -2,8 +2,6 @@ module.exports = function (grunt) {
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
grunt.loadNpmTasks('grunt-php');
|
grunt.loadNpmTasks('grunt-php');
|
||||||
grunt.loadNpmTasks('grunt-contrib-less');
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
||||||
|
|
||||||
grunt.initConfig({
|
grunt.initConfig({
|
||||||
php: {
|
php: {
|
||||||
@ -15,32 +13,8 @@ module.exports = function (grunt) {
|
|||||||
router: "index.php"
|
router: "index.php"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
less: {
|
|
||||||
development: {
|
|
||||||
options: {
|
|
||||||
cleancss: true,
|
|
||||||
report: 'min'
|
|
||||||
},
|
|
||||||
files: {
|
|
||||||
"resources/themes/daux-blue/css/theme.min.css": "resources/themes/daux-blue/less/theme.less",
|
|
||||||
"resources/themes/daux-green/css/theme.min.css": "resources/themes/daux-green/less/theme.less",
|
|
||||||
"resources/themes/daux-navy/css/theme.min.css": "resources/themes/daux-navy/less/theme.less",
|
|
||||||
"resources/themes/daux-red/css/theme.min.css": "resources/themes/daux-red/less/theme.less"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
scripts: {
|
|
||||||
files: ['templates/default/theme/**/*.less'],
|
|
||||||
tasks: ['less'],
|
|
||||||
options: {
|
|
||||||
nospawn: true
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
//grunt.registerTask('default', ['less', 'watch']);
|
|
||||||
grunt.registerTask('default', ['php']);
|
grunt.registerTask('default', ['php']);
|
||||||
};
|
};
|
||||||
|
167
gulpfile.js
Normal file
167
gulpfile.js
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
|
||||||
|
var gulp = require('gulp'),
|
||||||
|
php = require('gulp-connect-php'),
|
||||||
|
less = require('gulp-less'),
|
||||||
|
rename = require('gulp-rename'),
|
||||||
|
plumber = require('gulp-plumber'),
|
||||||
|
postcss = require('gulp-postcss');
|
||||||
|
|
||||||
|
var resources = {
|
||||||
|
daux_blue:{source: "resources/themes/daux-blue/less/theme.less", dest: "resources/themes/daux-blue/css/"},
|
||||||
|
daux_green:{source: "resources/themes/daux-green/less/theme.less", dest: "resources/themes/daux-green/css/"},
|
||||||
|
daux_navy:{source: "resources/themes/daux-navy/less/theme.less", dest: "resources/themes/daux-navy/css/"},
|
||||||
|
daux_red:{source: "resources/themes/daux-red/less/theme.less", dest: "resources/themes/daux-red/css/"}
|
||||||
|
};
|
||||||
|
|
||||||
|
var unusedRules = [
|
||||||
|
//We only use one glyphicon ...
|
||||||
|
".glyphicon-",
|
||||||
|
"!.glyphicon-chevron-right",
|
||||||
|
|
||||||
|
//we dont need all buttons
|
||||||
|
".btn-",
|
||||||
|
"!.btn-primary",
|
||||||
|
"!.btn-secondary",
|
||||||
|
"!.btn-hero",
|
||||||
|
"!.btn-sidebar",
|
||||||
|
".caret",
|
||||||
|
|
||||||
|
//Typography
|
||||||
|
".h1",
|
||||||
|
".h2",
|
||||||
|
".h3",
|
||||||
|
".h4",
|
||||||
|
".h5",
|
||||||
|
".h6",
|
||||||
|
".small",
|
||||||
|
|
||||||
|
// We need only small columns
|
||||||
|
".col-",
|
||||||
|
"!.col-sm",
|
||||||
|
|
||||||
|
// We don't use a lot of navs and navbars
|
||||||
|
".navbar-fixed",
|
||||||
|
".navbar-inverse",
|
||||||
|
".navbar-default",
|
||||||
|
".nav-pills",
|
||||||
|
".nav-tabs",
|
||||||
|
".nav-stacked",
|
||||||
|
".nav-justified",
|
||||||
|
|
||||||
|
// And a few others we don't use
|
||||||
|
".bg-",
|
||||||
|
".table"
|
||||||
|
];
|
||||||
|
|
||||||
|
function prepare_rules(rules) {
|
||||||
|
var regexes = {inclusion: [], exclusion: []}, rule, pattern, regex, exclusion;
|
||||||
|
|
||||||
|
for (rule in rules) {
|
||||||
|
if (!rules.hasOwnProperty(rule)) continue;
|
||||||
|
|
||||||
|
pattern = rules[rule];
|
||||||
|
|
||||||
|
exclusion = pattern.indexOf('!') === 0;
|
||||||
|
if (exclusion) { pattern = pattern.slice(1); }
|
||||||
|
|
||||||
|
regex = pattern.replace('.', '\\.').replace('*', '(.*)');
|
||||||
|
|
||||||
|
if (exclusion) {
|
||||||
|
regexes.exclusion.push(new RegExp(regex));
|
||||||
|
} else {
|
||||||
|
regexes.inclusion.push(new RegExp(regex));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return regexes;
|
||||||
|
}
|
||||||
|
|
||||||
|
function processPatterns(patterns, string) {
|
||||||
|
var i;
|
||||||
|
|
||||||
|
for (i in patterns.exclusion) {
|
||||||
|
if (!patterns.exclusion.hasOwnProperty(i)) continue;
|
||||||
|
if (string.match(patterns.exclusion[i])) return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i in patterns.inclusion) {
|
||||||
|
if (!patterns.inclusion.hasOwnProperty(i)) continue;
|
||||||
|
if (string.match(patterns.inclusion[i])) return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeUnusedRules(rules) {
|
||||||
|
var regexes = prepare_rules(rules);
|
||||||
|
|
||||||
|
return function(css) {
|
||||||
|
css.eachRule(function (rule) {
|
||||||
|
var removedSome = false,
|
||||||
|
selectors = rule.selectors,
|
||||||
|
i;
|
||||||
|
|
||||||
|
for (i = 0; i < selectors.length; i++) {
|
||||||
|
if (processPatterns(regexes, selectors[i])) {
|
||||||
|
selectors.splice(i, 1);
|
||||||
|
i--;
|
||||||
|
removedSome = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(removedSome) {
|
||||||
|
if (selectors.length == 0) {
|
||||||
|
rule.removeSelf();
|
||||||
|
} else {
|
||||||
|
rule.selectors = selectors;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return css;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function createTask(source, dest) {
|
||||||
|
return function() {
|
||||||
|
return gulp.src(source)
|
||||||
|
.pipe(less())
|
||||||
|
.pipe(postcss([
|
||||||
|
removeUnusedRules(unusedRules),
|
||||||
|
require('csswring')({
|
||||||
|
preserveHacks: true
|
||||||
|
})
|
||||||
|
]))
|
||||||
|
.pipe(rename({suffix: '.min'}))
|
||||||
|
.pipe(gulp.dest(dest));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var style_tasks = [];
|
||||||
|
for (var style in resources) {
|
||||||
|
gulp.task('style_' + style, createTask(resources[style].source, resources[style].dest));
|
||||||
|
style_tasks.push('style_' + style);
|
||||||
|
}
|
||||||
|
|
||||||
|
gulp.task("styles", style_tasks);
|
||||||
|
|
||||||
|
|
||||||
|
gulp.task('watch', function() {
|
||||||
|
|
||||||
|
// Watch .less files
|
||||||
|
gulp.watch('resources/themes/**/*.less', ['styles']);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('php', function() {
|
||||||
|
php.server({
|
||||||
|
keepalive: true,
|
||||||
|
open: true,
|
||||||
|
port: 8085,
|
||||||
|
router: "index.php"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
gulp.task('default', ['php']);
|
25
package.json
25
package.json
@ -1,13 +1,16 @@
|
|||||||
{
|
{
|
||||||
"name": "daux.io",
|
"name": "daux.io",
|
||||||
"version": "0.1.1",
|
"version": "0.1.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"devDependencies": {
|
||||||
"grunt": "~0.4.1",
|
"grunt": "~0.4.1",
|
||||||
"grunt-php": "~0.3.0",
|
"grunt-php": "~0.3.0",
|
||||||
"grunt-contrib-less": "~0.9.0"
|
"csswring": "^3.0.5",
|
||||||
},
|
"gulp": "^3.9.0",
|
||||||
"devDependencies": {
|
"gulp-connect-php": "0.0.5",
|
||||||
"grunt-contrib-watch": "~0.5.0"
|
"gulp-less": "^3.0.3",
|
||||||
}
|
"gulp-plumber": "^1.0.1",
|
||||||
|
"gulp-postcss": "^5.1.10",
|
||||||
|
"gulp-rename": "^1.2.2"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user