Skip to content

Instantly share code, notes, and snippets.

@JayCarney
Created May 23, 2014 01:52
Show Gist options
  • Save JayCarney/e3b35b155e20aaa3d7f8 to your computer and use it in GitHub Desktop.
Save JayCarney/e3b35b155e20aaa3d7f8 to your computer and use it in GitHub Desktop.
gruntfile.js
module.exports = function(grunt) {
grunt.registerTask('watch', [ 'watch']);
grunt.registerTask('build', [ 'coffee','uglify','sass_directory_import', 'sass', 'notify:build']);
grunt.registerTask('deploy','Depolyment build...', function(){
//remove console logs
var uglify = grunt.config.get('uglify');
for(var attributename in uglify){
uglify[attributename].options.compress = {drop_console: true};
uglify[attributename].options.sourceMap = false;
uglify[attributename].options.beautify = false;
}
grunt.config.set('uglify', uglify);
grunt.log.subhead("Console logs and source maps dropped from .js files");
//export scss in compressed
var sass = grunt.config.get('sass');
for(var attributename in sass){
sass[attributename].options.style = "compressed";
sass[attributename].options.sourcemap = false;
}
grunt.config.set('sass', sass);
grunt.log.subhead("Sass style set to 'compressed', source maps dropped");
grunt.task.run('build');
});
grunt.initConfig({
uglify: {
plugins: {
options: {
mangle: false,
sourceMap: true,
beautify: true
},
files: {
'static/js/min/plugins.js': [
'static/js/src/plugins/jquery-migrate-1.2.1.js',
'static/js/src/plugins/responsive-nav.js',
'static/js/src/plugins/jquery.fancybox.js',
'static/js/src/plugins/jquery.fancybox-media.js',
'static/js/src/plugins/hisrc.js',
'static/js/src/plugins/h5bp-plugins.js',
'static/js/src/plugins/printbar.js',
'static/js/src/plugins/enquire.js',
'static/js/src/plugins/jquery.swipebox.js',
'static/js/src/plugins/trackThis.js',
'static/js/src/plugins/fastclick.js',
'static/js/src/plugins/jquery.fitvids.js',
'static/js/src/plugins/jCarousel.js',
'static/js/src/plugins/validate.js',
'static/js/src/plugins/DashValidate.js',
'static/js/src/plugins/TourNav.js',
'static/js/src/plugins/StreetView.js',
'static/js/src/plugins/BGToggle.js',
'static/js/src/plugins/HomeSlider.js'
]
}
},
main:{
options: {
mangle: false,
sourceMap: true,
beautify: true
},
files: {
'static/js/min/main.js': [
'static/js/src/main/yepnope.js',
'static/js/src/main/yepnope.ie-prefix.js',
'static/js/src/main.js'
]
}
},
polyfills:{
options:{
mangle: false,
sourceMap: true
},
files:[{
expand: true,
cwd: 'static/js/src/polyfills',
src: '**/*.js',
dest: 'static/js/min/polyfills'
}]
}
},
sass:{
styles:{
options: {
compass: true,
style: 'expanded',
sourcemap: true
},
files:{
'static/css/main.css': 'static/scss/main.scss'
}
}
},
watch: {
coffee:{
files: ['static/js/src/**/*.coffee'],
tasks: ['coffee']
},
plugins: {
files: ['static/js/src/plugins/*.js'],
tasks: ['uglify:plugins', 'notify:uglifyPlugins'],
options: {
livereload: true
}
},
polyfills: {
files: ['static/js/src/polyfills/*.js'],
tasks: ['uglify:polyfills', 'notify:uglifyPolyfills'],
options: {
livereload: true
}
},
mainScript: {
files: ['static/js/src/main/*.js', 'static/js/src/main.js'],
tasks: ['uglify:main', 'notify:uglifyMain'],
options: {
livereload: true
}
},
css: {
files: ['**/*.scss'],
tasks: ['sass_directory_import','sass:styles', 'notify:scss']
},
livereload: {
// Here we watch the files the sass task will compile to
// These files are sent to the live reload server after sass compiles to them
options: { livereload: true },
files: ['static/css/*.css', 'static/elements/**/*', '_index.html', '_font.html'],
},
},
sass_directory_import:{
modules:{
files:{
src: ['static/scss/**/_all.scss']
}
}
},
notify:{
build:{
options: {
message: 'Inital build complete'
}
},
uglifyPlugins:{
options:{
message:'plugins.js uglification complete'
}
},
uglifyMain:{
options:{
message:'main.js uglification complete'
}
},
uglifyPolyfills:{
options:{
message:'polyfills directory uglification complete'
}
},
scss:{
options:{
message:'SCSS build complete'
}
},
watching:{
options:{
message:'Grunt Watching'
}
}
},
coffee:{
compile: {
expand: true,
cwd: 'static/js/src',
src: ['**/*.coffee'],
ext: '.js',
dest: 'static/js/src'
}
}
});
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-coffee');
grunt.loadNpmTasks('grunt-notify');
grunt.loadNpmTasks('grunt-sass-directory-import');
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment