|
|
|
/*jshint node: true, strict: false */
|
|
|
|
|
|
|
|
// -------------------------- grunt -------------------------- //
|
|
|
|
|
|
|
|
module.exports = function( grunt ) {
|
|
|
|
|
|
|
|
var banner = ( function() {
|
|
|
|
var src = grunt.file.read('js/isotope.js');
|
|
|
|
var re = new RegExp('^\\s*(?:\\/\\*[\\s\\S]*?\\*\\/)\\s*');
|
|
|
|
var matches = src.match( re );
|
|
|
|
var banner = matches[0].replace( 'Isotope', 'Isotope PACKAGED' );
|
|
|
|
return banner;
|
|
|
|
})();
|
|
|
|
|
|
|
|
grunt.initConfig({
|
|
|
|
// ----- global settings ----- //
|
|
|
|
namespace: 'isotope',
|
|
|
|
dataDir: 'tasks/data',
|
|
|
|
|
|
|
|
// ----- tasks settings ----- //
|
|
|
|
|
|
|
|
jshint: {
|
|
|
|
docs: [ 'js/**/*.js' ],
|
|
|
|
options: grunt.file.readJSON('.jshintrc')
|
|
|
|
},
|
|
|
|
|
|
|
|
requirejs: {
|
|
|
|
pkgd: {
|
|
|
|
options: {
|
|
|
|
baseUrl: 'bower_components',
|
|
|
|
include: [
|
|
|
|
'jquery-bridget/jquery.bridget',
|
|
|
|
'isotope/js/isotope'
|
|
|
|
],
|
|
|
|
out: 'dist/isotope.pkgd.js',
|
|
|
|
optimize: 'none',
|
|
|
|
paths: {
|
|
|
|
isotope: '../',
|
|
|
|
jquery: 'empty:'
|
|
|
|
},
|
|
|
|
wrap: {
|
|
|
|
start: banner
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
|
|
|
|
uglify: {
|
|
|
|
pkgd: {
|
|
|
|
files: {
|
|
|
|
'dist/isotope.pkgd.min.js': [ 'dist/isotope.pkgd.js' ]
|
|
|
|
},
|
|
|
|
options: {
|
|
|
|
banner: banner
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
|
|
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
|
|
grunt.loadNpmTasks('grunt-requirejs');
|
|
|
|
|
|
|
|
grunt.registerTask( 'pkgd-edit', function() {
|
|
|
|
var outFile = grunt.config.get('requirejs.pkgd.options.out');
|
|
|
|
var contents = grunt.file.read( outFile );
|
|
|
|
// get requireJS definition code
|
|
|
|
var definitionRE = /define\(\s*'isotope\/js\/isotope'(.|\n)+function\( Outlayer/;
|
|
|
|
var definition = contents.match( definitionRE )[0];
|
|
|
|
// remove name module
|
|
|
|
var fixDefinition = definition.replace( "'isotope/js/isotope',", '' )
|
|
|
|
// ./item -> isotope/js/item
|
|
|
|
.replace( /'.\//g, "'isotope/js/" );
|
|
|
|
contents = contents.replace( definition, fixDefinition );
|
|
|
|
grunt.file.write( outFile, contents );
|
|
|
|
grunt.log.writeln( 'Edited ' + outFile );
|
|
|
|
});
|
|
|
|
|
|
|
|
grunt.registerTask( 'default', [
|
|
|
|
'jshint',
|
|
|
|
'requirejs',
|
|
|
|
'pkgd-edit',
|
|
|
|
'uglify'
|
|
|
|
]);
|
|
|
|
|
|
|
|
};
|