Skip to content

Instantly share code, notes, and snippets.

@nfroidure
Last active December 27, 2015 20:39
Show Gist options
  • Save nfroidure/7385942 to your computer and use it in GitHub Desktop.
Save nfroidure/7385942 to your computer and use it in GitHub Desktop.
Exemple de tâche Grunt de génération d'icône
module.exports = function(grunt) {
// Chargement des modules Grunt nécessaires
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-svgicons2svgfont');
grunt.loadNpmTasks('grunt-svg2ttf');
grunt.loadNpmTasks('grunt-ttf2eot');
grunt.loadNpmTasks('grunt-ttf2woff');
grunt.initConfig({
// Tâche de conversion des icônes en fonts
svgicons2svgfont: {
icons: {
options: {
// Nom de la fonte
font: 'iconsfont',
// ajout automatique de codage unicode libres
// aux noms de fichier des icônes
appendCodepoints: true
},
// Source des icônes
src: 'documents/icons/*.svg',
// Destination de la fonte
dest: 'public/fonts'
}
},
// Génération de la fonte TTF
svg2ttf: {
icons: {
src: 'public/fonts/*.svg',
dest: 'public/fonts'
}
},
// Génération de la fonte EOT
ttf2eot: {
icons: {
src: 'public/fonts/*.ttf',
dest: 'public/fonts'
}
},
// Génération de la fonte WOFF
ttf2woff: {
icons: {
src: 'public/fonts/*.ttf',
dest: 'public/fonts'
}
},
// Tâche de surveillance de nouveaux icônes
// si un icône change on regénère tout
watch: {
icons: {
files: ['documents/icons/*.svg'],
tasks: ['icons2fonts']
}
}
});
// Creation de la tâche icons2fonts qui réuni
// tout le processus de génération de fonte
grunt.registerTask('icons2fonts', [
'svgicons2svgfont:icons',
'svg2ttf:icons',
'ttf2eot:icons',
'ttf2woff:icons'
]);
// Pour le developpement on génère les icône une fois
// et on surveille tout changement des icônes
grunt.registerTask('dev', [
'icons2fonts',
'watch'
]);
// Pour la mise en prod on génère les fontes
grunt.registerTask('dist', [
'icons2fonts'
]);
// la tâche par défaut est le développement
grunt.registerTask('default', [
'dev'
]);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment