Skip to content
This repository has been archived by the owner on Dec 11, 2021. It is now read-only.

Commit

Permalink
Build: add jsass-vars and completely modularize grunt
Browse files Browse the repository at this point in the history
  • Loading branch information
arschmitz committed May 21, 2015
1 parent 64a51ac commit 062aa94
Show file tree
Hide file tree
Showing 30 changed files with 316 additions and 854 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ style.css
# Folders
bower_components/
node_modules/
external/
icons/svg-min/
.sass-cache/
dist/
205 changes: 8 additions & 197 deletions Gruntfile.js
Original file line number Diff line number Diff line change
@@ -1,199 +1,10 @@
module.exports = function( grunt ) {
require( "load-grunt-tasks" )( grunt );

var config = {
htmllint: {
dist: {
options: {},
src: [ "demos/*.html" ]
}
},
autoprefixer: {
dist: {
options: {
map: true,
browsers: [
"> 1%",
"last 2 versions",
"safari >= 5.1",
"ios >= 6.1",
"android 2.3",
"android >= 4",
"ie >= 8"
]
},
src: "dist/css/*.css"
}
},
csscomb: {
dist: {
files: {
"dist/css/chassis.css": "dist/css/chassis.css"
}
},
scss: {
files: [ {
expand: true,
src: [ "scss/**/*.scss" ]
} ]
}
},
cssmin: {
options: {
report: "gzip",
sourceMap: true
},
target: {
files: {
"dist/css/chassis.min.css": "dist/css/chassis.css"
}
}
},
csslint: {
src: [ "dist/css/chassis.lint.css", "dist/css/chassis.lint.css", "demos/demos.css" ]
},
jscs: {
all: [ "*.js", "performance/**/*.js" ]
},
jshint: {
files: [ "*.js", "performance/**/*.js" ],
options: {
jshintrc: ".jshintrc"
}
},
npmcopy: {
options: {
destPrefix: "external"
},
normalize: {
files: {
"normalize.css/LICENSE.md": "normalize.css/LICENSE.md",
"normalize.css/normalize.scss": "normalize.css/normalize.css"
}
}
},
sass: {

// This is the same as lint below except including normalize.css
dist: {
options: {
sourceMap: true,

// This actually does nested until libsass updates to support expanded
outputStyle: "expanded"
},
files: {
"dist/css/chassis.css": "scss/style.scss"
}
},

// This is everything except normalize.css which won't pass our lint settings
lint: {
options: {
sourceMap: true,

// This actually does nested until libsass updates to support expanded
outputStyle: "expanded"
},
files: {
"dist/css/chassis.lint.css": "scss/lint.scss"
}
}
},

// Minifies SVGs
svgmin: {
options: {
plugins: [
{
removeViewBox: false
},
{
removeUselessStrokeAndFill: false
}
]
},
dist: {
files: [ {
expand: true,
cwd: "icons/svg-source",
src: [ "*.svg" ],
dest: "icons/svg-min/",
ext: ".svg"
} ]
}
},

// Combines SVGs into single file
svgstore: {
defaults: {
options: {

// This will prefix each ID
prefix: "icon-",

// Adds attributes to the resulting SVG
svg: {
viewBox: "0 0 24 24",
xmlns: "http://www.w3.org/2000/svg"
},
cleanup: [ "style", "fill", "id" ]
},
files: {
"icons/icons.svg": [ "icons/svg-min/*.svg" ]
}
}
},
watch: {
sass: {
files: [ "scss/**/*.scss" ],
tasks: [ "build" ],
options: {
spawn: false
}
},
svg: {
files: [ "svg-source/**/*.svg" ],
tasks: [ "svg" ],
options: {
spawn: false
}
}
},
"stop-selenium-server": {
dev: {}
}
};

// This loads files in the options folder as task options
// and builds an object based on their file names
function loadConfig(path) {
var glob = require( "glob" ),
object = {},
key;

glob.sync( "*", { cwd: path } ).forEach( function( option ) {
key = option.replace( /\.js$/, "" );
object[ key ] = require( path + option );
});

return object;
}

// We no combine the loaded task options with the ones defined in config above
grunt.util._.extend( config, loadConfig( "./tasks/options/" ) );

grunt.initConfig( config );
grunt.loadTasks( "tasks" );
grunt.loadNpmTasks( "perfjankie" );
grunt.registerTask( "default", [ "test" ] );
grunt.registerTask( "test", [ "build", "jshint", "jscs", "csslint", "htmllint" ] );
grunt.registerTask( "build", [ "svg", "sass", "csscomb", "cssmin" ] );
grunt.registerTask( "perf", [
"start-selenium-server",
"connect:perf",
"perfjankie",
"stop-selenium-server"
]);
grunt.registerTask( "svg", [ "svgmin", "svgstore" ] );
var path = require( "path" );
require( "load-grunt-config" )( grunt, {
configPath: [
path.join( process.cwd(), "tasks/options" ),
path.join( process.cwd(), "tasks" )
],
init: true
} );
};
19 changes: 0 additions & 19 deletions external/normalize.css/LICENSE.md

This file was deleted.

0 comments on commit 062aa94

Please sign in to comment.