Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

grunt-contrib-imagemin não otimiza a imagem do projeto

Olá,

Fazendo o último exercício da aula de otimização de imagens percebi que ao rodar a task imagemin a imagem do banner que acompanha o projeto não está sendo otimizada. Meu Gruntfile.js está assim:

module.exports = function (grunt) {

    //Função para tasks e targets
    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: {
                cwd: 'dist/img',
                expand: true,
                src: '**/*.{png/jpg/gif}',
                dest: 'dist/img'
            }

        },

        smushit: {

            public: {
                cwd: 'dist',
                expand: true,
                src: 'img',
                dest: 'dist/img'
            }
        }
    });

    //definição dos atalhos
    grunt.registerTask('default', ['dist', 'minifica']);
    grunt.registerTask('dist', ['clean', 'copy']);
    grunt.registerTask('minifica', ['useminPrepare', 'concat', 'uglify', 'cssmin', 'usemin', 'imagemin', 'smushit']);

    //carregamento dos plugins
    grunt.loadNpmTasks('grunt-contrib-copy');
    grunt.loadNpmTasks('grunt-contrib-clean');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-imagemin');
    grunt.loadNpmTasks('grunt-usemin');
    grunt.loadNpmTasks('grunt-smushit');
}

Para ver se era algo com o plugin em questão, baixei o smushit e este gerou uma melhora de 18% na imagem.

É normal um puglin conseguir melhorias e outros não conseguirem nada? Existe algum erro no meu código? Posso utilizar mais de um puglin para "aproveitar o melhor de cada" mesmo sendo para tasks semelhantes?

Obrigado

1 resposta
solução!

Excelente pergunta. Há diferenças sim nos algoritmos utilizados pelos plugins e no caso da imagem do projeto o smushit obteve melhor desempenho. Eu só vou verificar a imagem do projeto e te passo um feedback. Se não me engano, o smushit é mais "pesado" em termos de processamento, por isso optei pelo imageMin.