-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathGruntfile.js
More file actions
104 lines (100 loc) · 3.39 KB
/
Gruntfile.js
File metadata and controls
104 lines (100 loc) · 3.39 KB
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
module.exports = function (grunt) {
'use strict';
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('bower.json'),
jasmine: {
customTemplate: {
src: 'dist/<%= pkg.name %>.js',
options: {
host: 'http://localhost:7999/',
specs: 'tests/spec/**/*.js',
summary: true,
template: 'tests/shortlink.tmpl',
vendor: [
'http://code.jquery.com/jquery-2.1.1.min.js'
]
}
}
},
jshint: {
all: [
'Gruntfile.js',
'src/**/*.js',
'tests/**/*.js'
],
options: {
jshintrc: '.jshintrc'
}
},
connect: {
server: {
options: {
port: 7999,
keepalive: false
}
}
},
concat: {
dist: {
src: ['src/acceptance.js', 'src/qrcode.js'],
dest: 'dist/<%= pkg.name %>.js',
},
options: {
banner: "" +
"(function (root, factory) {\n" +
" if (typeof define === 'function' && define.amd) {\n" +
" // AMD. Register as an anonymous module.\n" +
" define([], function () {\n" +
" root.Settle = factory();\n" +
" return root.Settle;\n" +
" });\n" +
" } else {\n" +
" // Browser globals\n" +
" root.Settle = factory();\n" +
" }\n" +
"}(this, function () {\n" +
" 'use strict';\n" +
" var exports = {};\n",
footer: "return exports;\n}));",
stripBanners: true,
process: function (src, filepath) {
return src.replace(/^[^]*var exports\s*=\s*{\s*}\s*;([^]+)return exports;[^]+$/m, '$1');
}
},
},
uglify: {
options: {
mangle: true
},
build: {
src: 'dist/<%= pkg.name %>.js',
dest: 'dist/<%= pkg.name %>.min.js'
}
},
inlineImport: {
options: {
extensions: {
".css": "utf8",
".png": "base64",
".woff": "base64"
},
useVar: true
},
task: {
src: "dist/settle.acceptance.js"
}
}
});
// Load the plugins.
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-jasmine');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks("grunt-inline-import");
grunt.registerTask('minify', ['concat']);
grunt.registerTask('test', ['minify', 'connect', 'inlineImport', 'jasmine']);
grunt.registerTask('build', ['minify', 'connect', 'inlineImport', 'uglify', 'jasmine']);
grunt.registerTask('default', ['build']);
};