GuntFile.js
module.exports =function(grunt)
{
grunt.initConfig({
copy:{
public: {
cwd: 'public',
src: '**',
dest: 'dist',
expand: true
}
},
clean:{
dist:{
src:'dist'
}
},
useminPrepare:{
html:'dist/**/*.html'
},
usemin:{
html:'dist/**/*.html'
},
imagemin: {
public: {
expand: true,
cwd: 'dist/img',
src: '**/*.{png,jpg,gif}',
dest: 'dist/img'
}
}
});
grunt.registerTask('dist', ['clean', 'copy']);
grunt.registerTask('minifica', ['useminPrepare',
'concat', 'uglify', 'cssmin', 'usemin','imagemin']);
grunt.registerTask('default', ['dist', 'minifica']);
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.loadNpmTasks('grunt-usemin');
}
index.html
<!doctype html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<title>Grunt</title>
<!-- build:css css/index.min.css-->
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/index.css">
<!-- endbuild -->
</head>
<body class="container">
<div class="centraliza">
<h1 class="texto-sombreado">Bem-vindo ao</h1>
<img src="img/grunt-banner.png">
</div>
<p>
Em algum momento em sua carreira de desenvolvedor você já deve ter executado uma série de tarefas mesmo com o projeto pronto como empacotá-lo para depois enviá-lo via ftp.
</p>
<p>
Por exemplo, se você é um desenvolvedor front-end já deve ter se preocupado em minificar e concatenar seus scripts, inclusive já deve ter experimentado o uso de algum pré-processador como LESS.
</p>
<button class="invisivel">Ver mais ...</button>
<div class="painel">
<p>
A qualidade e quantidade de passos variam de acordo com as necessidades do seu projeto e essas necessidades acabam gerando um fluxo (workflow) identificável e que muitas vezes é documentado para ser usado por toda a equipe.
</p>
<p>
O problema é que tudo que é feito pelo ser humano está sujeito a erro. Por mais que tenhamos um manual nos dizendo o que fazer, nada nos impede de pularmos um dos passos, o que pode afetar diretamente o resultado final.
</p>
</div>
<!-- build:js js/index.min.js-->
<script src="js/index.js"></script>
<!-- endbuild -->
</body>
</html>