Skip to content

Instantly share code, notes, and snippets.

@rajiteh
Created March 21, 2013 01:09
Show Gist options
  • Save rajiteh/5209929 to your computer and use it in GitHub Desktop.
Save rajiteh/5209929 to your computer and use it in GitHub Desktop.
My grunt config template complete with less and coffee script lint
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-recess');
grunt.loadNpmTasks('grunt-shell');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-coffee');
grunt.loadNpmTasks('grunt-coffeelint');
var recessOptions = function(bool) {
bool = ((typeof bool === 'undefined')? false : bool);
var config = {
compile: true,
compress: bool,
noIDs: false,
noJSPrefix: false,
noOverqualifying: false,
noUnderscores: false,
noUniversalSelectors: false,
prefixWhitespace: false,
strictPropertyOrder: false,
zeroUnits: false
};
return config;
}
grunt.initConfig({
pkg: '<json:package.json>',
meta: {},
files: {
js: {
libs : [
'assets/js/libs/jquery/*.js',
'assets/js/libs/angular/*.js',
'assets/js/libs/**/*.js',
'assets/js/libs/*.js'
],
js : [
'assets/js/*.js',
'assets/js/**/*.js'
]
},
less: [
'assets/css/less/*.less',
'assets/css/less/**/*.less'
],
html: [
'*.html'
],
coffee: [
'assets/js/coffee/*.coffee'
],
css:[
'assets/css/libs/*.css'
]
},
coffee: {
compile:{
options: {
bare : true
},
src: '<config:files.coffee>',
dest: 'assets/js/compiled/*.js'
}
},
concat: {
csslib: {
src: '<config:files.css>',
dest: 'assets/css/libs.css'
},
libs: {
src: '<config:files.js.libs>',
dest: 'assets/js/libs.js'
},
js: {
src: 'assets/js/compiled/*.js',
dest: 'assets/js/app.js'
}
},
min: {
js: {
src: 'assets/js/app.js',
dest: 'assets/js/app.min.js'
},
libs: {
src: 'assets/js/libs.js',
dest: 'assets/js/libs.min.js'
}
},
recess: {
min: {
src: '<config:files.less>',
dest: 'assets/css/site.min.css',
options: recessOptions(true)
},
max: {
src: '<config:files.less>',
dest: 'assets/css/site.css',
options: recessOptions(false)
}
},
coffeelint: {
app: '<config:files.coffee>'
},
watch: {
less: {
files: '<config:files.less>',
tasks: 'recess:max'
},
coffee: {
files: '<config:files.coffee>',
tasks: 'coffeelint coffee concat:js'
},
},
jshint: {
options: {
curly: true,
eqeqeq: true,
immed: true,
latedef: true,
newcap: true,
noarg: true,
sub: true,
undef: true,
boss: true,
eqnull: true,
browser: true
}
},
uglify: {}
});
// Default task.
grunt.registerTask('default', 'coffeelint coffee concat recess:max');
grunt.registerTask('deploy', 'min recess:min');
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment