init
This commit is contained in:
228
grunt.js
Normal file
228
grunt.js
Normal file
@@ -0,0 +1,228 @@
|
||||
/*global module:false*/
|
||||
module.exports = function(grunt) {
|
||||
|
||||
grunt.loadNpmTasks('grunt-contrib');
|
||||
|
||||
//grunt.loadTasks('tasks/');
|
||||
|
||||
//directories
|
||||
var
|
||||
lib = 'src/',
|
||||
forms = lib+'editable-form/',
|
||||
inputs = lib+'inputs/',
|
||||
containers = lib+'containers/';
|
||||
|
||||
//config for different cores of lib
|
||||
var config = {
|
||||
bootstrap: {
|
||||
form: [forms+'editable-form-bootstrap.js'],
|
||||
container: [containers+'editable-popover.js'],
|
||||
inputs: [inputs+'date/date.js', inputs+'date/bootstrap-datepicker.js'],
|
||||
css: [inputs+'date/datepicker.css']
|
||||
},
|
||||
jqueryui: {
|
||||
form: [forms+'editable-form-jqueryui.js'],
|
||||
container: [containers+'editable-tooltip.js'],
|
||||
inputs: [inputs+'dateui.js'],
|
||||
css: []
|
||||
},
|
||||
jquery: {
|
||||
form: [],
|
||||
container: [containers+'editable-poshytip.js'],
|
||||
inputs: [inputs+'dateui.js'],
|
||||
css: []
|
||||
}
|
||||
};
|
||||
|
||||
var inline = [containers+'editable-inline.js'];
|
||||
|
||||
//common js files
|
||||
var js = [
|
||||
'<banner:meta.banner>',
|
||||
forms+'editable-form.js',
|
||||
forms+'editable-form-utils.js',
|
||||
containers+'editable-container.js',
|
||||
lib+'element/editable-element.js',
|
||||
inputs+'abstract.js',
|
||||
inputs+'text.js',
|
||||
inputs+'textarea.js',
|
||||
inputs+'select.js'
|
||||
];
|
||||
|
||||
//common css files
|
||||
var css = [
|
||||
'<banner:meta.banner>',
|
||||
forms+'editable-form.css',
|
||||
containers+'editable-container.css',
|
||||
lib+'element/editable-element.css'
|
||||
];
|
||||
|
||||
//create grunt concat task
|
||||
var task, folder, dest, concat_files = {}, min_files = {};
|
||||
for(var k in config) {
|
||||
folder = '<%= dist %>/'+k+'-editable/';
|
||||
|
||||
//popup
|
||||
task = k+'_popup_js';
|
||||
dest = folder+'js/'+k+'-editable'+ (k === 'jquery' ? '-poshytip' : '');
|
||||
concat_files[task] = {
|
||||
src: js.concat(config[k].form).concat(config[k].container).concat(config[k].inputs),
|
||||
dest: dest+'.js'
|
||||
};
|
||||
min_files[task] = {
|
||||
src: ['<banner:meta.banner>', '<config:concat.'+task+'.dest>'],
|
||||
dest: dest + '.min.js'
|
||||
};
|
||||
|
||||
//inline
|
||||
task = k+'_inline_js';
|
||||
dest = folder+'js/'+k+'-editable-inline';
|
||||
concat_files[task] = {
|
||||
src: js.concat(config[k].form).concat(inline).concat(config[k].inputs),
|
||||
dest: dest+'.js'
|
||||
};
|
||||
min_files[task] = {
|
||||
src: ['<banner:meta.banner>', '<config:concat.'+task+'.dest>'],
|
||||
dest: dest + '.min.js'
|
||||
};
|
||||
|
||||
//css
|
||||
concat_files[k+'_css'] = {
|
||||
src: css.concat(config[k].css),
|
||||
dest: folder+'css/'+k+'-editable.css'
|
||||
};
|
||||
}
|
||||
|
||||
var module = '';
|
||||
//module = '&module=textarea';
|
||||
//module = '&module=select';
|
||||
//module = '&module=text';
|
||||
|
||||
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
pkg: '<json:package.json>',
|
||||
dist: 'dist',
|
||||
meta: {
|
||||
banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> \n' +
|
||||
'* <%= pkg.description %>\n' +
|
||||
'* <%= pkg.homepage %>\n' +
|
||||
'* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' +
|
||||
' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */'
|
||||
},
|
||||
clean: ['<config:dist>'],
|
||||
concat: concat_files,
|
||||
min: min_files,
|
||||
qunit: {
|
||||
bootstrap: [
|
||||
'http://localhost:8000/test/index.html?f=bootstrap&c=popup'+module,
|
||||
'http://localhost:8000/test/index.html?f=bootstrap&c=inline'+module
|
||||
],
|
||||
jqueryui: [
|
||||
'http://localhost:8000/test/index.html?f=jqueryui&c=popup'+module,
|
||||
'http://localhost:8000/test/index.html?f=jqueryui&c=inline'+module
|
||||
],
|
||||
plain: [
|
||||
'http://localhost:8000/test/index.html?f=plain&c=popup'+module,
|
||||
'http://localhost:8000/test/index.html?f=plain&c=inline'+module
|
||||
]
|
||||
// files: ['test/index.html']
|
||||
},
|
||||
server: {
|
||||
port: 8000,
|
||||
base: '.'
|
||||
},
|
||||
|
||||
lint: {
|
||||
//TODO: lint tests files
|
||||
//files: ['grunt.js', 'src/js/*.js', 'test/**/*.js']
|
||||
files: ['grunt.js',
|
||||
'src/editable-form/*.js',
|
||||
'src/containers/*.js',
|
||||
'src/inputs/*.js',
|
||||
'src/element/*.js',
|
||||
'src/inputs/*.js',
|
||||
'src/inputs/date/date.js'
|
||||
//do not check bootstrap-datepicker
|
||||
]
|
||||
},
|
||||
/*
|
||||
watch: {
|
||||
files: '<config:lint.files>',
|
||||
tasks: 'lint qunit'
|
||||
},
|
||||
*/
|
||||
jshint: {
|
||||
options: {
|
||||
curly: true,
|
||||
eqeqeq: true,
|
||||
immed: true,
|
||||
latedef: true,
|
||||
newcap: true,
|
||||
noarg: true,
|
||||
sub: true,
|
||||
undef: true,
|
||||
boss: true,
|
||||
eqnull: true,
|
||||
browser: true,
|
||||
evil: false
|
||||
},
|
||||
globals: {
|
||||
jQuery: true
|
||||
}
|
||||
},
|
||||
copy: {
|
||||
dist: {
|
||||
files: {
|
||||
'<%= dist %>/bootstrap-editable/css/img' : 'src/editable-form/img/*',
|
||||
'<%= dist %>/jqueryui-editable/css/img' : 'src/editable-form/img/*',
|
||||
'<%= dist %>/jquery-editable/css/img' : 'src/editable-form/img/*',
|
||||
'<%= dist %>/bootstrap-editable/js/locales' : 'src/inputs/date/locales/*',
|
||||
'<%= dist %>': ['LICENSE-GPL', 'LICENSE-MIT', 'README.md', 'CHANGELOG.txt']
|
||||
},
|
||||
options: {
|
||||
flatten: true
|
||||
}
|
||||
}
|
||||
},
|
||||
//compress does not work properly for MAC OS (see https://github.com/vitalets/bootstrap-editable/issues/19)
|
||||
//zip will be created manually
|
||||
/*
|
||||
compress: {
|
||||
zip: {
|
||||
options: {
|
||||
mode: "zip",
|
||||
//TODO: unfortunatly here <%= dist_source %> and <config:dist_source> does not work
|
||||
basePath: "dist"
|
||||
},
|
||||
files: {
|
||||
"<%= dist %>/bootstrap-editable-v<%= pkg.version %>.zip": ["<%= dist_source %>/ **", "<%= dist %>/libs/ **"]
|
||||
}
|
||||
},
|
||||
tgz: {
|
||||
options: {
|
||||
mode: "tgz",
|
||||
basePath: "dist"
|
||||
},
|
||||
files: {
|
||||
"<%= dist %>/bootstrap-editable-v<%= pkg.version %>.tar.gz": ["<%= dist_source %>/ **", "<%= dist %>/libs/ **"]
|
||||
}
|
||||
}
|
||||
},
|
||||
*/
|
||||
uglify: {}
|
||||
});
|
||||
|
||||
//test task
|
||||
grunt.registerTask('test', 'server qunit:bootstrap');
|
||||
grunt.registerTask('testall', 'server qunit');
|
||||
|
||||
// Default task.
|
||||
// grunt.registerTask('default', 'lint qunit');
|
||||
grunt.registerTask('default', 'clean concat min copy');
|
||||
|
||||
// build
|
||||
grunt.registerTask('build', 'clean lint concat min copy');
|
||||
|
||||
//to run particular task use ":", e.g. copy:libs
|
||||
};
|
Reference in New Issue
Block a user