responsivewebframework
Version:
Jalasoft Foundation Front End Framework ========================================
282 lines (246 loc) • 7.44 kB
JavaScript
/*global module:false */
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
clean: {
deep: {
src: [
'dist/*',
'dist',
'src/css/*',
'!src/js/jquery-2.1.1.min.js',
'.tmp',
'*.log'
]
},
afterMinify: {
src: [
'dist'
]
},
showcase: {
src: [
'../frontend-showcase/dist/*',
'../frontend-showcase/dist/',
'.tmp',
'*.log'
]
},
frameworkAngular: {
src: [
'../front-end-angularjs/dist/*',
'../front-end-angularjs/dist/',
'.tmp',
'*.log'
]
},
jalaIcons: {
src: [
'src/css/jala-icons.css'
]
}
},
concat: {
options: {
separator: '\n\n'
},
dist: {
src: [ 'src/js/system-controller.jsx',
'src/js/*.js'
],
dest: 'dist/js/frontend-framework.js'
}
},
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: 'src/',
dest: 'dist/',
src: [
'*',
'fonts/**',
'img/**',
'js/jquery-2.1.1.min.js'
],
filter: 'isFile'
}]
},
showcase: {
files: [{
expand: true,
dot: true,
cwd: 'dist/',
dest: '../frontend-showcase/dist/',
src: [
'*',
'fonts/**',
'img/**',
'css/**',
'js/**',
'js/jquery-2.1.1.min.js'
],
filter: 'isFile'
}]
},
frameworkAngular: {
files: [{
expand: true,
dot: true,
cwd: 'dist/',
dest: '../front-end-angularjs/dist/',
src: [
'*',
'css/**',
'js/**'
],
filter: 'isFile'
}]
}
},
less: {
css: {
options: {
paths: 'src/less'
},
files: [
{
expand: true,
cwd: 'src/less',
src: ['responsive-web-framework.less'],
dest: 'src/css/',
ext: '.css'
}
]
}
},
cssmin: {
css:{
options: {
banner: '/*!\n' +
' * Jala Fundation Frontend Framework v<%= pkg.version %> \n' +
' * Copyright <%= grunt.template.today("yyyy") %>, <%= grunt.template.today("yyyy-mm-dd") %> ' +
new Date().getTime() + ' \n' +
' * Author: <%= pkg.author %>\n' +
' */\n'
},
files: {
'dist/css/frontend-framework.min.css': ['src/css/**/*.css', '!src/css/jala-icons.css']
}
}
},
uglify: {
options: {
banner: '/*!\n' +
' * Jala Fundation FrontEnd Framework v<%= pkg.version %> \n' +
' * Copyright <%= grunt.template.today("yyyy") %>, <%= grunt.template.today("yyyy-mm-dd") %> \n' +
' * Author: <%= pkg.author %>\n' +
' */\n'
},
build: {
src: ['dist/js/frontend-framework.js','!src/js/jquery-2.1.1.min.js'],
dest: 'dist/js/frontend-framework.min.js'
}
},
jshint: {
options: {
camelcase: true,
curly: true,
eqeqeq: true,
forin: true,
immed: true,
indent: 4,
latedef: true,
newcap: true,
noarg: true,
nonew: true,
quotmark: 'single',
undef: true,
unused: true,
maxparams: 4,
maxdepth: 4,
maxlen: 120,
browser: true,
sub: true,
eqnull: true
},
gruntfile: {
src: 'Gruntfile.js'
},
test: {
src: ['src/**/*.js','!src/js/jquery-2.1.1.min.js']
}
},
watch: {
less:{
files: ['src/**/*.less'],
tasks: ['clean:deep', 'clean:showcase', 'concat', 'uglify', 'less', 'cssmin', 'copy:dist', 'copy:showcase']
},
js:{
files: ['src/**/*.js', '!src/js/jquery-2.1.1.min.js'],
tasks: ['clean:deep', 'clean:showcase', 'concat', 'uglify', 'less', 'cssmin', 'copy:dist', 'copy:showcase']
},
html:{
files: ['src/**/*.html'],
tasks: ['clean:deep', 'clean:showcase', 'concat', 'uglify', 'less', 'cssmin', 'copy:dist', 'copy:showcase']
}
},
webfont: {
icon: {
src: 'src/icons/*.svg',
dest: 'src/fonts',
destCss: 'src/css/',
options: {
font: 'jala-icons',
startCodepoint: 0xD406,
htmlDemo: false,
hashes: false
}
}
},
'release-component': {
options: {
componentRepo: 'git@172.20.8.18:web-module/frontend-dist.git',
copy: {
'dist/css/frontend-framework.min.css' : 'css/frontend-framework.min.css'
}
}
}
});
[
'grunt-contrib-jshint',
'grunt-contrib-watch',
'grunt-contrib-clean',
'grunt-contrib-copy',
'grunt-contrib-concat',
'grunt-contrib-uglify',
'grunt-contrib-cssmin',
'grunt-contrib-less',
'grunt-webfont',
'grunt-release-component'
].forEach(function(task) { grunt.loadNpmTasks(task); });
grunt.registerTask('build', [
'clean:deep',
'less',
'cssmin',
'concat',
'uglify',
'copy:dist'
]);
grunt.registerTask('dev', [
'clean:deep',
'clean:showcase',
'clean:frameworkAngular',
'less',
'cssmin',
'concat',
'uglify',
'copy:dist',
'copy:showcase',
'copy:frameworkAngular',
'watch'
]);
grunt.registerTask('fontDev', ['webfont',
'clean:jalaIcons']);
};