1 |
|
2 |
|
3 |
|
4 |
|
5 | module.exports = function( grunt ) {
|
6 |
|
7 | var mainFile = grunt.file.readJSON('bower.json').main;
|
8 |
|
9 | var banner = ( function() {
|
10 | var src = grunt.file.read( mainFile );
|
11 | var re = new RegExp('^\\s*(?:\\/\\*[\\s\\S]*?\\*\\/)\\s*');
|
12 | var matches = src.match( re );
|
13 | var banner = matches[0].replace( 'Packery layout mode', 'Packery layout mode PACKAGED' );
|
14 | return banner;
|
15 | })();
|
16 |
|
17 | grunt.initConfig({
|
18 |
|
19 | namespace: 'isotope',
|
20 | dataDir: 'tasks/data',
|
21 |
|
22 |
|
23 |
|
24 | jshint: {
|
25 | src: [ mainFile ],
|
26 | options: {
|
27 | "browser": true,
|
28 | "devel": false,
|
29 | "strict": true,
|
30 | "undef": true,
|
31 | "unused": true,
|
32 | "predef": {
|
33 | "define": false,
|
34 | "module": false,
|
35 | "require": false
|
36 | }
|
37 | }
|
38 | },
|
39 |
|
40 | requirejs: {
|
41 | pkgd: {
|
42 | options: {
|
43 | baseUrl: 'bower_components',
|
44 | include: [
|
45 | 'isotope-packery/packery-mode'
|
46 | ],
|
47 | out: 'packery-mode.pkgd.js',
|
48 | optimize: 'none',
|
49 | paths: {
|
50 | 'isotope-packery': '../',
|
51 | outlayer: 'empty:',
|
52 | 'get-style-property': 'empty:',
|
53 | 'get-size': 'empty:',
|
54 | 'isotope-layout': 'empty:'
|
55 | },
|
56 | wrap: {
|
57 | start: banner
|
58 | }
|
59 | }
|
60 | }
|
61 | },
|
62 |
|
63 | uglify: {
|
64 | pkgd: {
|
65 | files: {
|
66 | 'packery-mode.pkgd.min.js': [ 'packery-mode.pkgd.js' ]
|
67 | },
|
68 | options: {
|
69 | banner: banner
|
70 | }
|
71 | }
|
72 | }
|
73 |
|
74 | });
|
75 |
|
76 | grunt.loadNpmTasks('grunt-contrib-jshint');
|
77 | grunt.loadNpmTasks('grunt-contrib-uglify');
|
78 | grunt.loadNpmTasks('grunt-requirejs');
|
79 |
|
80 | grunt.registerTask( 'pkgd-edit', function() {
|
81 | var outFile = grunt.config.get('requirejs.pkgd.options.out');
|
82 | var contents = grunt.file.read( outFile );
|
83 | contents = contents.replace( "'isotope-packery/packery-mode',", '' );
|
84 | grunt.file.write( outFile, contents );
|
85 | grunt.log.writeln( 'Edited ' + outFile );
|
86 | });
|
87 |
|
88 | grunt.registerTask( 'default', [
|
89 |
|
90 | 'requirejs',
|
91 | 'pkgd-edit',
|
92 | 'uglify'
|
93 | ]);
|
94 |
|
95 | };
|