-
Notifications
You must be signed in to change notification settings - Fork 18
/
Gruntfile.js
54 lines (46 loc) · 1.33 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
module.exports = function(grunt) {
var replaceToken= "<!-- /* BOOKMARCKLET.MIN.JS */ -->",
fs= require('fs');
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
uglify: {
options: {
banner: ''
},
build: {
src: 'bookmarklet.js',
dest: 'bookmarklet.min.js'
}
},
watch: {
scripts: {
files: ['bookmarklet.js'],
tasks: ['default'],
options: {
spawn: false,
},
},
},
addLink: {
data:{
input: 'index.src.html',
output: 'index.html',
content: 'bookmarklet.min.js',
token: replaceToken
}
}
});
// Load the plugin that provides the "uglify" task.
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
// Default task(s).
grunt.registerMultiTask('addLink', 'Adds the minified bookmarklet js to the html.', function() {
var jsToInsert= (""+fs.readFileSync(this.data.content)).replace(/"/g, '"');
var template= fs.readFileSync(this.data.input, 'utf8');
jsToInsert= unescape(jsToInsert);
template= template.replace(this.data.token, jsToInsert);
fs.writeFileSync(this.data.output, template , 'utf8');
});
grunt.registerTask('default', ['uglify', 'addLink']);
};