-
Notifications
You must be signed in to change notification settings - Fork 0
/
gruntfile.coffee
115 lines (101 loc) · 3.05 KB
/
gruntfile.coffee
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
module.exports = (grunt) ->
# Project configuration
grunt.initConfig
coffee:
compile:
options:
join: true
files: [
'assets/javascripts/shared/shared.js': 'assets/javascripts/shared/_*.coffee'
'assets/javascripts/pages/pages.js': 'assets/javascripts/pages/_*.coffee'
]
concat:
dist:
src: [
# Manual dependency ordering (put specific files first)
'assets/javascripts/vendor/moment.js'
'assets/javascripts/vendor/jquery.min.js'
'assets/javascripts/vendor/fullcalendar.js'
'assets/javascripts/vendor/gcal.js'
'assets/javascripts/vendor/*.js'
'assets/javascripts/shared/*.js'
'assets/javascripts/pages/*.js'
]
dest: 'assets/javascripts/npl.min.js'
uglify:
dist:
src: '<%= concat.dist.dest %>'
dest: '<%= concat.dist.dest %>' # Stomp over the file
jshint:
options:
curly: true
eqeqeq: true
immed: true
latedef: true
newcap: true
noarg: true
sub: true
undef: true
unused: true
boss: true
eqnull: true
browser: true
globals: {}
autoprefixer:
dist:
options:
browsers: ['last 2 versions', '> 5%', 'Firefox ESR']
src: ['assets/stylesheets/npl.min.css']
notify:
sass:
options:
title: "Task Complete"
message: "SASS finished compiling!"
sass:
dist:
options:
style: 'compressed'
quiet: false
sourcemap: 'auto'
loadPath: require('node-neat').includePaths
files: ['assets/stylesheets/npl.min.css': 'assets/stylesheets/npl.scss']
watch:
options:
livereload: true
stylesheets:
files: ['assets/stylesheets/**/*.scss']
tasks: ['sass', 'autoprefixer']
coffeescripts:
files: ['assets/javascripts/**/*.coffee']
tasks: ['coffee', 'jshint', 'concat', 'uglify']
javascripts:
files: [
'assets/javascripts/pages/**/*.js'
'assets/javascripts/shared/**/*.js'
'assets/javascripts/vendor/**/*.js'
]
tasks: ['jshint', 'concat', 'uglify']
svgmin:
options:
plugins: [
{ removeViewBox: false }
{ removeUselessStrokeAndFill: true }
{ cleanupIDs: false }
]
dist:
files:
'assets/images/sprite.svg' : 'assets/images/sprite.svg'
svgstore:
options:
formatting:
indent_size: 2
default:
files:
'assets/images/sprite.svg': 'assets/images/sprite/*.svg'
# Load all Grunt tasks automatically
require('load-grunt-tasks') grunt
# Register tasks
grunt.registerTask 'default', ['coffee', 'jshint', 'concat', 'uglify', 'sass', 'autoprefixer', 'watch']
grunt.registerTask 'scripts', ['coffee', 'jshint', 'concat', 'uglify']
grunt.registerTask 'styles', ['sass', 'autoprefixer']
grunt.registerTask 'sprite', ['svgstore', 'svgmin']