Skip to content

Instantly share code, notes, and snippets.

@aarongustafson
Created April 9, 2014 20:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aarongustafson/10309390 to your computer and use it in GitHub Desktop.
Save aarongustafson/10309390 to your computer and use it in GitHub Desktop.
PatternLab Gruntfile
module.exports = function(grunt){
require("matchdep").filterDev("grunt-*").forEach(grunt.loadNpmTasks);
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
compass: {
dev: {
options: {
config: 'config.rb'
}
},
prod: {
options: {
config: 'config.rb',
outputStyle: 'compressed',
noLineComments: true
}
},
clean: {
options: {
config: 'config.rb',
clean: true
}
}
},
concat: {
options: {
separator: ';'
},
jquery: {
src: ['source/js/jquery.js'],
dest: 'public/js/jquery.js'
},
main: {
src: ['source/js/components/*.js'],
dest: 'public/js/main.js'
},
details: {
src: ['source/js/plugins/details.js'],
dest: 'public/js/plugins/details.js'
}
},
uglify: {
prod: {
files: {
'public/js/jquery.js': ['source/js/jquery.js'],
'public/js/main.js': ['source/js/components/*.js'],
'public/js/plugins/details.js': ['source/js/plugins/details.js']
}
}
},
imageoptim: {
min: {
options: {
jpegMini: false,
imageAlpha: true,
quitAfter: true
},
src: [
'public/images',
'public/css/i'
]
}
},
exec: {
patternlab: {
command: 'php builder/builder.php -g',
stdout: false,
stderr: false
}
},
compress: {
js: {
options: {
mode: 'gzip'
},
files: [
{
expand: true,
cwd: 'public/js',
src: ['**/*.js'],
dest: 'public/gzip/js',
ext: '.gz.js'
}
]
},
css: {
options: {
mode: 'gzip'
},
files: [
{
expand: true,
cwd: 'public/css',
src: ['*.css'],
dest: 'public/gzip/css',
ext: '.gz.css'
}
]
}
},
copy: {
images: {
expand: true,
cwd: 'source/images/',
src: ['**'],
dest: 'public/images/'
}
},
watch: {
patternlab: {
files: ['source/**/*.{json,mustache}','source/_data/*','source/_patternlab-files/*'],
tasks: ['exec:patternlab']
},
sass: {
files: ['source/css/**/*.scss'],
tasks: ['compass:dev']
},
concat: {
files: ['source/js/**/*.js'],
tasks: ['concat']
},
images: {
files: ['source/images/**/*.{jpg,gif,png}'],
tasks: ['copy:images']
}
}
});
grunt.registerTask('build', ['uglify','compass:clean','compass:prod','imageoptim','compress']);
grunt.registerTask('default', []);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment