Nota: Esta questão é relevante apenas para Grunt 0.3.xe foi deixada para referência. Para obter ajuda com a versão mais recente do Grunt 1.x, consulte meu comentário abaixo desta pergunta.
Atualmente, estou tentando usar Grunt.js para configurar um processo de compilação automático para primeiro concatenar e, em seguida, minimizar arquivos CSS e JavaScript.
Consegui concatenar e minificar com sucesso meus arquivos JavaScript, embora cada vez que executo o grunt, ele pareça apenas anexar ao arquivo em vez de sobrescrevê-los.
Quanto à minimização ou mesmo concatenação de CSS, ainda não consegui fazer isso!
Em termos de módulos CSS grunhido Eu tentei usar consolidate-css
, grunt-css
& cssmin
, mas sem sucesso. Não consegui entender como usá-los!
Minha estrutura de diretório é a seguinte (sendo um aplicativo node.js típico):
- app.js
- grunt.js
- /public/index.html
- / public / css / [vários arquivos css]
- / public / js / [vários arquivos javascript]
Aqui está a aparência do meu arquivo grunt.js atualmente na pasta raiz do meu aplicativo:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: '<json:package.json>',
concat: {
dist: {
src: 'public/js/*.js',
dest: 'public/js/concat.js'
}
},
min: {
dist: {
src: 'public/js/concat.js',
dest: 'public/js/concat.min.js'
}
},
jshint: {
options: {
curly: true,
eqeqeq: true,
immed: true,
latedef: true,
newcap: true,
noarg: true,
sub: true,
undef: true,
boss: true,
eqnull: true,
node: true
},
globals: {
exports: true,
module: false
}
},
uglify: {}
});
// Default task.
grunt.registerTask('default', 'concat min');
};
Para resumir, preciso de ajuda com duas perguntas:
- Como concatenar e reduzir todos os meus arquivos css na pasta
/public/css/
em um arquivo, por exemplomain.min.css
- Por que grunt.js continua anexando aos arquivos javascript concatenados e minificados
concat.js
econcat.min.js
em/public/js/
vez de substituí-los sempre que o comandogrunt
é executado?
Atualizado em 5 de julho de 2016 - Atualização de Grunt 0.3.x para Grunt 0.4.x ou 1.x
Grunt.js
foi movido para uma nova estrutura em Grunt 0.4.x
(o arquivo agora é chamado Gruntfile.js
). Consulte meu projeto de código aberto Grunt.js Skeleton para obter ajuda na configuração de um processo de construção para Grunt 1.x
.
Mudar de Grunt 0.4.x
para Grunt 1.x
não deve apresentar muitas mudanças importantes .
concat
na mesmajs
pasta, isso iria pegá-la e anexá-la! Comecei a usar o cssmin e funciona muito bem! Obrigado novamente.