forked from ractivejs/ractive
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGruntfile.js
124 lines (119 loc) · 2.93 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
115
116
117
118
119
120
121
122
123
124
/*global module:false*/
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON( 'package.json' ),
meta: {
banner: '/*! Ractive - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %>\n' +
'* Next-generation DOM manipulation\n\n' +
'* http://ractivejs.org\n' +
'* Copyright (c) <%= grunt.template.today("yyyy") %> Rich Harris; Licensed MIT */' +
'\n\n'
},
watch: {
js: {
files: [ 'src/**/*.js', 'wrapper/**/*.js' ],
tasks: [ 'clean:tmp', 'concat' ],
options: {
interrupt: true,
force: true
}
}
},
qunit: {
files: [ 'test/index.html' ]
},
concat: {
options: {
banner: '<%= meta.banner %>',
process: {
data: { version: '<%= pkg.version %>' }
}
},
runtime: {
src: [ 'wrapper/begin.js', 'src/**/utils/*.js', 'src/**/*.js', 'wrapper/end.js', '!src/legacy.js', '!src/parser/**/*.js' ],
dest: 'tmp/Ractive.runtime.js'
},
full: {
src: [ 'wrapper/begin.js', 'src/**/utils/*.js', 'src/**/*.js', 'wrapper/end.js', '!src/legacy.js' ],
dest: 'tmp/Ractive.js'
},
runtime_legacy: {
src: [ 'wrapper/begin.js', 'src/legacy.js', 'src/**/utils/*.js', 'src/**/*.js', 'wrapper/end.js', '!src/parser/**/*.js' ],
dest: 'tmp/Ractive-legacy.runtime.js'
},
full_legacy: {
src: [ 'wrapper/begin.js', 'src/legacy.js', 'src/**/utils/*.js', 'src/**/*.js', 'wrapper/end.js' ],
dest: 'tmp/Ractive-legacy.js'
}
},
clean: {
tmp: [ 'tmp/' ],
build: [ 'build/' ]
},
jshint: {
files: [ '<%= concat.full_legacy.dest %>' ],
options: {
jshintrc: '.jshintrc'
}
},
uglify: {
runtime: {
src: ['<%= concat.runtime.dest %>'],
dest: 'build/Ractive.runtime.min.js'
},
full: {
src: ['<%= concat.full.dest %>'],
dest: 'build/Ractive.min.js'
},
runtime_legacy: {
src: ['<%= concat.runtime_legacy.dest %>'],
dest: 'build/Ractive-legacy.runtime.min.js'
},
full_legacy: {
src: ['<%= concat.full_legacy.dest %>'],
dest: 'build/Ractive-legacy.min.js'
}
},
copy: {
build: {
files: [{
expand: true,
cwd: 'tmp/',
src: [ '**/*' ],
dest: 'build/'
}]
},
release: {
files: [{
expand: true,
cwd: 'build/',
src: [ '**/*' ],
dest: 'release/<%= pkg.version %>/'
}]
},
link: {
files: {
'Ractive.js': 'build/Ractive.js'
}
}
}
});
grunt.loadNpmTasks( 'grunt-contrib-jshint' );
grunt.loadNpmTasks( 'grunt-contrib-clean' );
grunt.loadNpmTasks( 'grunt-contrib-qunit' );
grunt.loadNpmTasks( 'grunt-contrib-concat' );
grunt.loadNpmTasks( 'grunt-contrib-uglify' );
grunt.loadNpmTasks( 'grunt-contrib-copy' );
grunt.loadNpmTasks( 'grunt-contrib-watch' );
grunt.registerTask( 'default', [
'clean:tmp',
'concat',
'jshint',
'qunit',
'clean:build',
'copy:build',
'uglify'
]);
grunt.registerTask( 'release', [ 'default', 'copy:release', 'copy:link' ] );
};