resume/Gruntfile.js

102 lines
3.4 KiB
JavaScript

module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
bower: {
js: {
dest: 'web/js/vendor',
options: {
cleanTargetDir: true,
checkExistence: true,
debugging: false,
paths: {
bowerDirectory: 'vendor/bower',
bowerrc: '.bowerrc',
bowerJson: 'bower.json'
}
}
}
},
copy: {
dist: {
files: [
{
expand: true,
cwd: 'vendor/bower/uikit/fonts',
src: ['*'],
dest: 'web/fonts',
filter: 'isFile'
}
]
}
},
less: {
build: {
options: {
plugins: [new (require('less-plugin-autoprefix'))({browsers: ["last 3 versions"]}),],
paths: [
'vendor/bower/uikit/less',
'src/Sikofitt/less'
],
strictImports: true,
compress: true
},
files: {
'web/css/resume.min.css': 'src/Sikofitt/less/resume.less'
}
}
},
watch: {
configFiles: {
files: ['Gruntfile.js'],
options: {
reload: true
}
},
dev: {
files: ['src/Sikofitt/less/*', 'src/Sikofitt/js/*'],
tasks: ['dev'],
options: {
atBegin: true
}
},
options: {
dateFormat: function(time) {
d = new Date();
grunt.log.ok('Grunt tasks finished in ' + time + 'ms on ' + d.toDateString() + ' at ' + d.toTimeString());
grunt.log.ok('Watching ...');
}
}
},
uglify: {
options: {
mangle: true,
report: 'gzip',
compress: {
drop_console: false
},
banner: '/*! \n * Resume.PHP - v<%= pkg.version %> MIT (http://resume.reric.me)\n' +
' * <%= grunt.template.today("dddd, mmmm dS, yyyy, h:MM:ss tt") %> \n */\n',
footer: '\n/*! Resume.PHP end */',
nameCache: '.tmp/grunt-uglify-cache.json',
preserveComments: 'some',
},
dist: {
files: {'web/js/resume.min.js': ['src/Sikofitt/js/resume.js']}
}
}
});
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('main-bower-files');
grunt.loadNpmTasks('grunt-phpunit');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.registerTask('dist', ['bower', 'less', 'uglify', 'copy']);
grunt.registerTask('dev', ['less', 'uglify'])
grunt.registerTask('default', 'dist');
};