Hawk/Gruntfile.js
2015-08-29 23:49:50 +04:30

84 lines
2.2 KiB
JavaScript

var path = require('path'),
fs = require('fs');
module.exports = function(grunt) {
grunt.initConfig({
less: {
development: {
files: [{
src: 'less/main.less',
dest: 'style.css'
}]
},
production: {
options: {
plugins: require('less-plugin-clean-css')()
},
files: [{
src: 'less/main.less',
dest: 'style.css'
}]
}
},
uglify: {
production: {
files: {
'main.js': 'js/**/*.js'
}
}
},
injector: {
options: {
transform: function(file) {
var ext = path.extname(file).slice(1);
switch (ext) {
case 'css':
return '<link rel="stylesheet" href="' + file + '" />';
case 'js':
return '<script src="' + file + '"></script>';
case 'html':
return fs.readFileSync(__dirname + file);
}
}
},
development: {
files: {
'index.html': ['js/libs/*.js', 'js/*.js',
'style.css', 'partials/**/*.html'],
'how.html': ['js/libs/*.js', 'js/*.js',
'style.css', 'partials/0-header.html',
'partials/how*.html']
}
},
production: {
files: {
'index.html': ['main.js', 'style.css', 'partials/**/*.html'],
'how.html': ['main.js', 'style.css',
'partials/0-header.html', 'partials/how*.html']
}
}
},
watch: {
styles: {
files: ['less/**/*.less'],
tasks: ['less']
},
partials: {
files: ['partials/**/*.html'],
tasks: ['injector']
}
}
});
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-asset-injector');
grunt.registerTask('default', ['less:development', 'injector:development']);
grunt.registerTask('production', ['less:production',
'uglify:production',
'injector:production']);
};