mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
First iteration on grunt-based build. lint, qunit, concat, min and zip all work, but all have various limiations.
This commit is contained in:
parent
3e8ec7eb6b
commit
69dcb76e6b
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,6 +1,8 @@
|
||||
build/dist
|
||||
build/size
|
||||
build/build/.sizecache.json
|
||||
dist
|
||||
node_modules
|
||||
docs
|
||||
.project
|
||||
*~
|
||||
|
99
grunt.js
Normal file
99
grunt.js
Normal file
@ -0,0 +1,99 @@
|
||||
/*global config:true, task:true*/
|
||||
var coreFiles = 'jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.effects.core.js'.split(', ');
|
||||
config.init({
|
||||
pkg: '<json:package.json>',
|
||||
meta: {
|
||||
banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' +
|
||||
'<%= template.today("m/d/yyyy") %>\n' +
|
||||
'<%= pkg.homepage ? "* " + pkg.homepage + "\n" : "" %>' +
|
||||
'* Copyright (c) <%= template.today("yyyy") %> <%= pkg.author.name %>;' +
|
||||
' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */'
|
||||
},
|
||||
concat: {
|
||||
// 'dist/ui/jquery-ui.js': ['<banner>', '<file_strip_banner:ui/*.js>']
|
||||
'dist/jquery-ui.js': coreFiles.map(function(file) {
|
||||
return 'ui/' + file;
|
||||
}).concat(file.expand('ui/*.js').filter(function(file) {
|
||||
return coreFiles.indexOf(file.substring(3)) === -1;
|
||||
}))
|
||||
},
|
||||
min: {
|
||||
'dist/jquery-ui.min.js': ['<banner>', 'dist/jquery-ui.js']
|
||||
},
|
||||
zip: {
|
||||
dist: {
|
||||
src: [
|
||||
'dist/**/*.js',
|
||||
'README.md',
|
||||
'grunt.js',
|
||||
'package.json',
|
||||
'ui/**/*',
|
||||
'demos/**/*',
|
||||
'themes/**/*',
|
||||
'external/**/*',
|
||||
'tests/**/*'
|
||||
],
|
||||
dest: 'dist/<%= pkg.name %>-<%= pkg.version %>.zip'
|
||||
}
|
||||
},
|
||||
qunit: {
|
||||
files: file.expand('tests/unit/**/*.html').filter(function(file) {
|
||||
// disabling everything that doesn't (quite) work with PhantomJS for now
|
||||
// except for all|index|test, try to include more as we go
|
||||
return !(/(all|index|test|draggable|droppable|selectable|resizable|sortable|dialog|slider|datepicker|tabs|tabs_deprecated)\.html/).test(file);
|
||||
})
|
||||
},
|
||||
lint: {
|
||||
// TODO extend this to tests
|
||||
files: ['ui/*']
|
||||
},
|
||||
jshint: {
|
||||
options: {
|
||||
curly: true,
|
||||
eqeqeq: true,
|
||||
immed: true,
|
||||
latedef: true,
|
||||
newcap: true,
|
||||
noarg: true,
|
||||
sub: true,
|
||||
undef: true,
|
||||
eqnull: true,
|
||||
browser: true
|
||||
},
|
||||
globals: {
|
||||
jQuery: true
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
task.registerBasicTask('zip', 'Create a zip file for release', function(data) {
|
||||
var files = file.expand(data.src);
|
||||
log.writeln("Creating zip file " + data.dest);
|
||||
|
||||
var done = this.async();
|
||||
|
||||
var zipstream = require('zipstream');
|
||||
var fs = require('fs');
|
||||
|
||||
var out = fs.createWriteStream(data.dest);
|
||||
var zip = zipstream.createZip({ level: 1 });
|
||||
|
||||
zip.pipe(out);
|
||||
|
||||
function addFile() {
|
||||
if (!files.length) {
|
||||
zip.finalize(function(written) {
|
||||
log.writeln(written + ' total bytes written');
|
||||
done();
|
||||
});
|
||||
return;
|
||||
}
|
||||
var file = files.shift();
|
||||
log.verbose.writeln('Zipping ' + file);
|
||||
zip.addFile(fs.createReadStream(file), { name: file }, addFile);
|
||||
}
|
||||
addFile();
|
||||
});
|
||||
|
||||
task.registerTask('default', 'lint qunit');
|
||||
task.registerTask('release', 'default concat min zip');
|
33
package.json
Normal file
33
package.json
Normal file
@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "jquery-ui",
|
||||
"title": "jQuery UI",
|
||||
"description": "Abstractions for low-level interaction and animation, advanced effects and high-level, themeable widgets, built on top of the jQuery JavaScript Library, that you can use to build highly interactive web applications.",
|
||||
"version": "1.9.0pre",
|
||||
"homepage": "https://github.com/jquery/jquery-ui",
|
||||
"author": {
|
||||
"name": "AUTHORS.txt"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/jquery/jquery-ui.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "http://bugs.jqueryui.com/"
|
||||
},
|
||||
"licenses": [
|
||||
{
|
||||
"type": "MIT",
|
||||
"url": "http://www.opensource.org/licenses/MIT"
|
||||
},
|
||||
{
|
||||
"type": "GPL",
|
||||
"url": "http://www.opensource.org/licenses/GPL-2.0"
|
||||
}
|
||||
],
|
||||
"dependencies": {},
|
||||
"devDependencies": {
|
||||
"grunt": "0.2.x",
|
||||
"zipstream": "0.2.x"
|
||||
},
|
||||
"keywords": []
|
||||
}
|
Loading…
Reference in New Issue
Block a user