-
Notifications
You must be signed in to change notification settings - Fork 5
/
Gruntfile.js
110 lines (99 loc) · 2.44 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
module.exports = function(grunt) {
grunt.initConfig({
// Project configuration.
pkg: grunt.file.readJSON('package.json'),
// Compiles our Sass
sass: {
options: {
precision: 6,
sourceComments: false,
outputStyle: 'compressed'
},
dist: {
files: {
'css/fabric.css': 'scss/fabric.scss'
}
}
},
// Handle vendor prefixing
postcss: {
options: {
processors: [
require('autoprefixer-core')({ browsers: ['last 2 versions', 'ie 8', 'ie 9'] })
]
},
dist: {
src: 'css/*.css'
},
docs: {
src: '_site/*.css'
}
},
// Runs CSS reporting
parker: {
options: {
metrics: [
'TotalStylesheets',
'TotalStylesheetSize',
'TotalRules',
'TotalSelectors',
'TotalIdentifiers',
'TotalDeclarations',
'SelectorsPerRule',
'IdentifiersPerSelector',
'SpecificityPerSelector',
'TopSelectorSpecificity',
'TopSelectorSpecificitySelector',
'TotalIdSelectors',
'TotalUniqueColours',
'TotalImportantKeywords',
'TotalMediaQueries'
],
file: "css/.fabric-stats.md",
usePackage: true
},
src: [
'css/*.css'
]
},
// Build tooling
watch: {
sass: {
files: ['scss/**/*.scss', 'docs/docs.scss'],
tasks: ['sass', 'postcss', 'parker']
}
},
jekyll: {
options: {
src: 'docs',
dest: '_site',
config: '_config.yml'
}
},
buildcontrol: {
options: {
dir: '_site',
commit: true,
push: true,
message: 'Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%'
},
pages: {
options: {
remote: '[email protected]:wealthsimple/fabric.git',
branch: 'gh-pages'
}
}
}
});
// Load dependencies
grunt.loadNpmTasks('grunt-postcss');
grunt.loadNpmTasks('grunt-build-control');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-jekyll');
grunt.loadNpmTasks('grunt-parker');
grunt.loadNpmTasks('grunt-sass');
// Generate and format the CSS
grunt.registerTask('default', ['sass', 'jekyll', 'postcss', 'parker']);
// Publish to GitHub
grunt.registerTask('publish', ['jekyll', 'postcss:docs', 'buildcontrol:pages']);
};