forked from oscarekholm/oscarekholm-se
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGruntfile.js
131 lines (116 loc) · 2.74 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
125
126
127
128
129
130
131
module.exports = function(grunt) {
var mainBanner = '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n';
grunt.initConfig({
pkg : grunt.file.readJSON('package.json'),
compass : {
production : {
options: {
sassDir : 'src/css',
cssDir : 'production/css',
imagesDir : 'src/img',
javascriptsDir : 'src/js',
fontsDir : 'src/fonts',
outputStyle : 'expanded'
}
}
},
concat : {
production : {
src : [ 'src/js/oscarekholm-se-main.js'],
dest : 'production/js/<%= pkg.name %>.js'
}
},
copy : {
main : {
files : [
{ expand : true, cwd : 'src/img/', src : [ '**' ], dest : 'production/img/' },
{ expand : true, cwd : 'src/js/libs', src : [ '**' ], dest : 'production/js/libs' },
{ expand : true, cwd : 'src/', src : 'index.html', dest : 'production/' }
]
}
},
cssmin : {
dev : {
options : {
banner : mainBanner
},
minify : {
expand : true,
cwd : 'production/css/',
src : [ '*.css', '!*.min.css' ],
dest : 'production/css/',
ext : '.min.css'
}
},
production : {
options : {
banner : mainBanner
},
files : {
'production/css/<%= pkg.name %>.min.css': ['production/css/**/*.css']
}
}
},
htmlmin : {
production : {
options : {
removeComments : true,
collapseWhitespace : true
},
files : {
'production/index.html' : 'production/index.html'
}
}
},
jshint : {
beforeconcat: [ 'src/js/oscarekholm-se-main.js' ]
},
uglify : {
options : {
banner : mainBanner
},
production : {
files : {
'production/js/<%= pkg.name %>.min.js' : [ '<%= concat.production.dest %>' ]
}
}
},
watch : {
options: {
spawn : false
},
css : {
files : 'src/css/**/*.scss',
tasks : [ 'compass', 'cssmin' ]
},
scripts : {
files : 'src/js/**/*.js',
tasks : [ 'jshint', 'concat' ]
},
html : {
files : 'src/index.html',
tasks : [ 'copy' ]
},
livereload : {
options : {
livereload : 9001
},
files : [
'<%= watch.css.files %>',
'<%= watch.html.files %>',
'<%= watch.scripts.files %>'
]
}
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-compass');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-htmlmin');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.registerTask('default', [ 'compass', 'cssmin:dev', 'jshint', 'concat' ]);
grunt.registerTask('produce', [ 'copy', 'compass', 'cssmin:production', 'jshint', 'concat', 'uglify', 'htmlmin' ]);
};