1
0
Fork 0
mirror of https://github.com/koalyptus/TableFilter.git synced 2024-05-15 21:06:44 +02:00
TableFilter/Gruntfile.js

318 lines
13 KiB
JavaScript
Raw Normal View History

module.exports = function (grunt) {
// Initializes the Grunt tasks with the following settings
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
2014-10-10 15:34:45 +02:00
version: '<%= pkg.version %>',
dist_folder: 'dist/',
source_folder: 'src/',
2015-03-14 12:00:38 +01:00
frags_folder: 'frags/',
// A list of files, which will be syntax-checked by JSHint
jshint: {
2014-11-23 04:34:57 +01:00
src: [
'Gruntfile.js',
'<%= source_folder %>*.js',
2015-04-24 12:38:20 +02:00
'src-es6/**/*.js',
2015-03-06 09:49:30 +01:00
'!<%= source_folder %>tablefilter.js'
2015-04-24 12:38:20 +02:00
// ,
// '!src-es6/tablefilter.js'
2014-11-23 04:34:57 +01:00
],
options: {
2014-11-15 15:34:32 +01:00
jshintrc: '.jshintrc'
}
},
2014-10-26 11:48:13 +01:00
watch: {
files: [
2014-11-16 01:29:07 +01:00
'src-es6/**/*.js',
2015-04-20 09:20:28 +02:00
'src-es6/**/*.css'
// ,
// '<%= source_folder %>**/*.js',
// '<%= source_folder %>**/*.css',
// '<%= source_folder %>**/*.html'
2014-10-26 11:48:13 +01:00
],
tasks: ['dev']
},
2014-11-08 13:37:24 +01:00
qunit: {
files: ['test/**/*.html']
},
2015-04-04 10:10:09 +02:00
requirejs:{
2015-03-14 12:00:38 +01:00
'compile-main': {
options: {
2014-11-23 04:34:57 +01:00
baseUrl: '<%= source_folder %>',
2015-04-27 16:26:59 +02:00
include: [
'../libs/almond/almond',
'../libs/system'
],
2015-03-06 09:49:30 +01:00
// exclude: [
// 'extensions/sortabletable/sortabletable',
// 'extensions/sortabletable/adapterSortabletable'
// ],
2014-11-23 04:34:57 +01:00
shim: {
2015-04-04 10:10:09 +02:00
'extensions/sortabletable/sortabletable': {
2014-11-23 04:34:57 +01:00
exports: 'SortableTable'
}
2015-03-06 09:49:30 +01:00
},
2015-04-04 10:10:09 +02:00
wrap: {
startFile: "<%= frags_folder %>start.frag",
endFile: "<%= frags_folder %>end.frag"
},
name: 'tablefilter',
out: '<%= dist_folder %>tablefilter.js',
optimize: 'none'
}
}
2015-04-27 16:26:59 +02:00
// ,
// 'compile-colsvisibility': {
// options: {
// baseUrl: '<%= source_folder %>extensions/colsVisibility',
// include: [
// '../../../libs/almond/almond'
// ],
// wrap: {
// startFile: "<%= frags_folder %>start.colsvisibility.frag",
// endFile: "<%= frags_folder %>end.colsvisibility.frag"
// },
// name: 'colsVisibility',
// out: '<%= dist_folder %>extensions/colsVisibility/colsVisibility.js',
// optimize: 'none',
// findNestedDependencies: true,
// removeCombined: true,
// generateSourceMaps: false
// }
// }
},
2015-04-04 10:10:09 +02:00
// requirejs: {
// 'compile-main': {
// options: {
// // appDir: "<%= dist_folder %>",
// baseUrl: '<%= source_folder %>',
// paths: {
// almond: '../libs/almond/almond',
// sortabletable: 'extensions/sortabletable/sortabletable',
// adapterSortabletable: 'extensions/sortabletable/adapterSortabletable'
// },
// // include: ['../libs/almond/almond', 'tablefilter'],
// // exclude: [
// // 'extensions/sortabletable/sortabletable',
// // 'extensions/sortabletable/adapterSortabletable'
// // ],
// // name: 'tablefilter',
// // out: '<%= dist_folder %>tablefilter.js',
// dir: '<%= dist_folder %>',
// wrap: {
// startFile: "<%= frags_folder %>start.frag",
// endFile: "<%= frags_folder %>end.frag"
// },
// // insertRequire: ['tablefilter'],
// shim: {
// 'sortabletable': {
// exports: 'SortableTable'
// }
// },
// modules:[
// {
// name: 'extensions/sortabletable/adapterSortabletable',
// include: [
// 'extensions/sortabletable/adapterSortabletable',
// 'extensions/sortabletable/sortabletable'
// ]
// },
// {
// name: 'tablefilter',
// create: true,
// include: [
// 'almond',
// 'tablefilter'
// ],
// exclude: ['require'],
// excludeShallow: [
// 'adapterSortabletable'
// ]
// }
// ],
// removeCombined: true,
// findNestedDependencies: false,
// optimize: 'none'/*'uglify2'*/,
// generateSourceMaps: false/*,
// preserveLicenseComments: false,
// generateSourceMaps: true*/
// }
// }
// // ,
// // 'compile-extensions': {
// // options:{
// // baseUrl: '<%= source_folder %>extensions',
// // dir: '<%= dist_folder %>/extensions',
// // // paths: {
// // // sortabletable: 'sortabletable/sortabletable',
// // // adapterSortabletable: 'sortabletable/adapterSortabletable'
// // // },
// // wrap: {
// // startFile: "<%= frags_folder %>start.sort.frag",
// // endFile: "<%= frags_folder %>end.sort.frag"
// // },
// // modules:[
// // {
// // name: 'sortabletable/adapterSortabletable',
// // include: [
// // 'sortabletable/adapterSortabletable',
// // 'sortabletable/sortabletable'
// // ]
// // }
// // ],
// // removeCombined: true,
// // findNestedDependencies: false,
// // optimize: 'none'/*'uglify2',
// // preserveLicenseComments: false,
// // generateSourceMaps: true*/
// // }
// // }
// },
concat: {
/*js: {
files: [{
2015-03-06 09:49:30 +01:00
src: ['<%= source_folder %>tablefilter.js'],
dest: '<%= dist_folder %>tablefilter.js'
}]
},*/
css: {
files: [{
src: ['<%= source_folder %>filtergrid.css'],
dest: '<%= dist_folder %>filtergrid.css'
}]
}
},
// and minified (source and destination files)
uglify: {
options: {
banner: '/*------------------------------------------------------------------------ \n' +
2014-10-10 15:34:45 +02:00
'\t- TableFilter v<%= version %> by Max Guglielmi \n' +
'\t- build date: <%= grunt.template.today() %> \n' +
'\t- http://tablefilter.free.fr \n' +
'\t- Copyright (c) 2014, Licensed under the MIT License \n' +
'------------------------------------------------------------------------*/ \n'
},
js: {
2015-03-07 12:14:25 +01:00
files: [{
src: ['<%= dist_folder %>tablefilter.js'],
dest: '<%= dist_folder %>tablefilter.js'
}]
}
},
cssmin: {
combine: {
options: {
banner: '/*------------------------------------------------------------------------ \n' +
'\t- TableFilter stylesheet by Max Guglielmi \n' +
'\t- (build date: <%= grunt.template.today() %>) \n' +
'\t- Edit below for your projects\' needs \n' +
'------------------------------------------------------------------------*/ \n'
},
files: {
'<%= concat.css.files[0].dest %>': ['<%= concat.css.files[0].dest %>']
}
}
},
copy: {
2015-03-07 12:14:25 +01:00
tablefilter: {
files: [
2015-03-07 12:14:25 +01:00
{ src: 'libs/sortabletable.js', dest: '<%= source_folder %>extensions/sortabletable/sortabletable.js' },
2015-04-27 16:26:59 +02:00
// { src: 'libs/es6-module-loader.js', dest: '<%= source_folder %>es6-module-loader.js' },
2015-04-20 09:20:28 +02:00
{ src: 'src-es6/extensions/colsVisibility/colsVisibility.css', dest: '<%= source_folder %>extensions/colsVisibility/colsVisibility.css' },
2015-04-04 10:10:09 +02:00
// { src: 'libs/requirejs/require.js', dest: '<%= dist_folder %>require.js' },
// { src: ['**'], cwd: '<%= source_folder %>TF_Modules/', dest: '<%= dist_folder %>TF_Modules/', expand: true },
2015-04-06 10:45:46 +02:00
2015-04-20 09:20:28 +02:00
// TODO: remove ezEditTable and other extensions
2015-04-06 10:45:46 +02:00
{ src: ['**'], cwd: 'libs/ezEditTable/', dest: '<%= source_folder %>extensions/ezEditTable/', expand: true },
{ src: ['**'], cwd: 'libs/ezEditTable/', dest: '<%= dist_folder %>extensions/ezEditTable/', expand: true },
2015-04-27 16:26:59 +02:00
// { src: ['**'], cwd: '<%= source_folder %>extensions/colsVisibility/', dest: '<%= dist_folder %>extensions/colsVisibility/', expand: true },
2015-04-06 10:45:46 +02:00
//
2015-04-27 16:26:59 +02:00
{ src: 'libs/es6-module-loader.src.js', dest: '<%= dist_folder %>es6-module-loader.src.js' },
{ src: 'libs/es6-module-loader.js', dest: '<%= dist_folder %>es6-module-loader.js' },
{ src: 'libs/es6-module-loader.js.map', dest: '<%= dist_folder %>es6-module-loader.js.map' },
{ src: 'libs/system.js.map', dest: '<%= dist_folder %>system.js.map' },
{ src: ['**'], cwd: '<%= source_folder %>TF_Themes/', dest: '<%= dist_folder %>TF_Themes/', expand: true }
]
}
2014-11-15 15:34:32 +01:00
},
2015-04-27 16:26:59 +02:00
connect: {
server:{
options:{
port: 9000,
hostname: "*",
keepalive: true
}
}
},
2015-03-06 09:49:30 +01:00
babel: {
2015-03-14 12:00:38 +01:00
'build-main': {
options: {
sourceMap: true,
2015-04-04 10:10:09 +02:00
modules: 'amd',
compact: false
2015-03-14 12:00:38 +01:00
},
2014-11-15 15:34:32 +01:00
files: [{
expand: true,
2014-11-16 01:29:07 +01:00
cwd: 'src-es6',
2015-03-14 12:00:38 +01:00
src: ['*.js'],
2014-11-16 01:29:07 +01:00
dest: '<%= source_folder %>'
2015-03-14 12:00:38 +01:00
},{
expand: true,
cwd: 'src-es6/modules',
src: ['*.js'],
dest: '<%= source_folder %>modules'
}]
},
'build-extensions':{
options: {
sourceMap: true,
modules: 'amd'
},
files: [{
expand: true,
cwd: 'src-es6/extensions',
src: ['**/*.js'],
dest: '<%= source_folder %>extensions'
2014-11-15 15:34:32 +01:00
}]
}
}
});
// Load the plugins that provide the tasks we specified in package.json.
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-copy');
2014-10-26 11:48:13 +01:00
grunt.loadNpmTasks('grunt-contrib-watch');
2014-11-08 13:37:24 +01:00
grunt.loadNpmTasks('grunt-contrib-qunit');
2014-11-01 12:52:59 +01:00
grunt.loadNpmTasks('grunt-contrib-requirejs');
2015-04-27 16:26:59 +02:00
grunt.loadNpmTasks('grunt-contrib-connect');
2015-02-28 10:27:28 +01:00
grunt.loadNpmTasks('grunt-babel');
// This is the default task being executed if Grunt
// is called without any further parameter.
2015-04-27 16:26:59 +02:00
grunt.registerTask('default', ['jshint', 'toes5', 'build-requirejs', 'concat', 'uglify', 'cssmin', 'copy', 'qunit']);
grunt.registerTask('build', ['jshint', 'toes5', 'build-requirejs', 'concat', /*'uglify',*/ 'cssmin', 'copy']);
2015-03-14 12:00:38 +01:00
grunt.registerTask('dev', ['jshint', 'toes5', 'concat', 'cssmin', 'copy']);
2015-04-27 16:26:59 +02:00
grunt.registerTask('build-requirejs', ['requirejs:compile-main', 'requirejs:compile-colsvisibility']);
2015-03-14 12:00:38 +01:00
grunt.registerTask('toes5', ['babel:build-main','babel:build-extensions']);
2014-11-08 13:37:24 +01:00
grunt.registerTask('test', ['qunit']);
2015-04-27 16:26:59 +02:00
grunt.registerTask('server', ['connect']);
2015-02-15 09:55:23 +01:00
};