-
Notifications
You must be signed in to change notification settings - Fork 1
/
Gruntfile.js
114 lines (110 loc) · 3.78 KB
/
Gruntfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
module.exports = function ( grunt ) {
'use strict';
var pkg = grunt.file.readJSON( 'package.json' ),
comment = '/**\n * <%= pkg.name %> - Javascript Library (jQuery plugin)\n * jQuery v1.9~ (http://jquery.com) + ixBand v1.0~ (http://ixband.com)\n * @version v<%= pkg.version %> (<%= grunt.template.today("yymmddHHMM") %>)\n * The MIT License (MIT), http://ixsnack.com\n */\n';
// Project configuration.
grunt.initConfig({
pkg: pkg,
'concat': {
options: {
separator: '\n\n\n',
stripBanners: true,
banner: comment + ";(function (window) {\n 'use strict';\n\n",
process: function( src, filepath ) {
var result = src.replace( /VERSION: '',/, "VERSION: '" + pkg.version + "'," );
return result.replace( /^/gm, ' ' );
},
footer: '\n})( typeof window === "object" ? window : undefined );'
},
dist: {
src: [
'src/main.js',
'src/plugin.js',
'src/BaseClass.js',
'src/ListIndexManager.js',
'src/ThumbController.js',
'src/SlideMax.js',
'src/SlideLite.js',
'src/OverlayList.js',
'src/OverlayList.Motion.js',
'src/OverlayList.OverlayMotion.js',
'src/OverlayList.SlideMotion.js',
'src/OverlayList.MaskMotion.js',
'src/BaseSlider.js',
'src/Slider.js',
'src/RangeSlider.js'
],
dest: 'dist/<%= pkg.fileName %>.js'
}
},
'uglify': {
options: {
banner: comment,
ASCIIOnly: true
},
my_target: {
files: [
{
expand: true,
cwd: 'dist',
src: ['<%= pkg.fileName %>.js'],
dest: 'dist/',
rename: function ( dest, src ) {
return dest + src.replace( /.js$/, '.min.js' );
}
},
{
expand: true,
cwd: 'dist',
src: ['<%= pkg.fileName %>.js'],
dest: 'dist/',
rename: function ( dest, src ) {
return dest + 'ixSnack.min.js';
}
}
]
}
},
'string-replace': {
dist: {
files: [{
expand: true,
cwd: 'test/',
src: '**/*',
dest: 'test/'
}],
options: {
//ixSnack new version source
replacements: [{
pattern: /\/v[0-9.]+\/ixSnack/g,
replacement: '/'
}, {
pattern: /\/ixSnack_([0-9.]+)(.min)*.js/g,
replacement: function ( match, p1, p2 ) {
return '/' + pkg.fileName + ( p2 || '' ) + '.js';
}
}]
}
}
},
'watch': {
template: {
options: {
liereload: true
},
files: ['src/**/*.js'],
tasks: ['concat']
}
}
});
grunt.loadNpmTasks( 'grunt-contrib-watch' );
grunt.loadNpmTasks( 'grunt-contrib-uglify' );
grunt.loadNpmTasks( 'grunt-contrib-concat' );
grunt.loadNpmTasks( 'grunt-string-replace' );
// Default task(s).
grunt.registerTask( 'default', ['concat', 'watch'] );
//JS compress
grunt.registerTask( 'compress', ['uglify'] );
//*.html ixsnack version replace
grunt.registerTask( 'html-replace', ['string-replace'] );
};