Grunt Responsive Images Выводит ничего, ошибок нет - PullRequest
0 голосов
/ 28 ноября 2018

Так что я не самый разбирающийся в хрюканье, но это озадачило меня до глубины души.Когда я запускаю задачу grunt адаптивного образа, она работает нормально, но ничего не выводит в папку назначения ...

Вот часть ошибки:

error-1

И это дерево папок:

folder-tree

У меня есть другие задачи, которые запускаются в моем Gruntfile.js, так что это что-то с задачами respive_images.

Полный код

/**
 * gruntfile.js
 *
 * original code from jeff1evesque @ https://gist.github.com/jeff1evesque/b98560d6c4d9914049f9
 * modified as needed
 */

module.exports = function (grunt) {

  grunt.initConfig({

  // Watch task configuration
    watch: {
      css: {
        files: 'src/scss/*.scss',
        tasks: ['sass'],
      },
      js: {
        files: 'src/js/*.js',
        tasks: ['uglify'],
      },
      img: {
        files: 'src/img/*.{png,jpg,gif}',
        tasks: ['responsive_images', 'imagemin'],
      },
      html: {
        files: 'src/*.html',
        tasks: ['htmlmin'],
      }
    },

  // Sass task configuration
    sass: {
      dist: {
        files: [{
          expand: true,               // enable dynamic expansion
          cwd: 'src/scss/',
          src: ['**/*.scss'],
          dest: 'dist/public/css/',
          ext: '.min.css',            // dest filepaths will have this extension
          extDot: 'first',            // extensions in filenames begin after the first dot
        }],
        options: {
          style: 'compressed'
        },
      },
    },

  // Uglify task configuration
    uglify: {
      my_target: {
        files: [{
          expand: true,               // enable dynamic expansion
          cwd: 'src/js/',
          src: ['**/*.js'],
          dest: 'dist/public/js/',
          ext: '.min.js',             // dest filepaths will have this extension
          extDot: 'last',             // extensions in filenames begin after the last dot
        }],
      },
    },

    // Resize and save all images
    responsive_images: {
      dev: {
        options: {
          engine: 'gm',
          sizes: [{
            name: '320',
            quality: 100,
            width: 320
          },{
            name: '440',
            quality: 100,
            width: 440
          },{
            name: '680',
            quality: 100,
            width: 680
          },{
            name: '1024',
            quality: 100,
            width: 1024
          },{
            name: '1200',
            quality: 100,
            width: 1200
          }]
        },
        files: [{
          expand: true,
          cwd: 'src/img/',
          src: ['*.{jpg,gif,png}'],
          dest: 'dist/public/img/',
        }]
      }
    },

  // Copy images to new destination

  // copy: {
  //   dev: {
  //     files: [{
  //       expand: true,
  //       src: ['**/*'],
  //       cwd: 'src/img',
  //       dest: 'dist/public/img'
  //     }]
  //   }
  // },

  // Imagemin task configuration
    imagemin: {
      dynamic: {
        files: [{
          expand: true,               // enable dynamic expansion
          cwd: 'src/img/',
          src: ['**/*.{png,jpg,gif}'],
          dest: 'dist/public/img/',
        }],
      },
    },

  //Htmlmin task configuration
    htmlmin: {
      dist: {
        options: {
          removeComments: true,
          collapseWhitespace: true
        },
        files: [{
          expand : true,
          cwd : 'src',
          src : '**/*.html',
          dest : 'dist/public'
        }]
      },
      // dev: {
      //   files: [{
      //     expand: true,
      //     cwd: 'app',
      //     src: ['src/**/*.html', '*.html'],
      //     dest: 'dist/'
      //   }]
      // },
    },

  });

  // Load Plug-ins
  grunt.loadNpmTasks('grunt-contrib-sass');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-uglify');
  // grunt.loadNpmTasks('grunt-contrib-copy');
  grunt.loadNpmTasks('grunt-responsive-images');
  grunt.loadNpmTasks('grunt-contrib-imagemin');
  grunt.loadNpmTasks('grunt-contrib-htmlmin');

  // Register Tasks: used as commands
  grunt.registerTask('build-sass', ['sass', 'watch']);
  grunt.registerTask('build-uglify', ['uglify', 'watch']);
  grunt.registerTask('build-img', ['responsive_images']);
  // grunt.registerTask('build-copy', ['copy', 'watch']);
  grunt.registerTask('build-imagemin', ['imagemin']);
  grunt.registerTask('build-htmlmin', ['htmlmin', 'watch']);
  grunt.registerTask('default', ['sass', 'uglify', 'responsive_images','imagemin', 'htmlmin', 'watch']);
};

И вот только задача responseive_images

module.exports = function (grunt) {
  grunt.initConfig({
  // Watch task configuration
    watch: {
      img: {
        files: 'src/img/*.{png,jpg,gif}',
        tasks: ['responsive_images'],
      }
    },

    // Resize and save all images
    responsive_images: {
      dev: {
        options: {
          engine: 'gm',
          sizes: [{
            name: '320',
            quality: 100,
            width: 320
          },{
            name: '440',
            quality: 100,
            width: 440
          },{
            name: '680',
            quality: 100,
            width: 680
          },{
            name: '1024',
            quality: 100,
            width: 1024
          },{
            name: '1200',
            quality: 100,
            width: 1200
          }]
        },
        files: [{
          expand: true,
          cwd: 'src/img/',
          src: ['*.{jpg,gif,png}'],
          dest: 'dist/public/img/',
        }]
      }
    }

  });
  // Load Plug-ins
  grunt.loadNpmTasks('grunt-responsive-images');
  // Register Tasks: used as commands
  grunt.registerTask('build-img', ['responsive_images']);
  grunt.registerTask('default', ['responsive_images', 'watch']);
};

Я проверил мои package.json и package-lock.json, все выглядит какбыть в порядке, включая управление версиями.

Grunt v. 1.0.3 grunt-responseive-images v. 1.10.1 GraphicsMagick v. 1.3.31 ОС Windows 10

Пожалуйста и спасибо.

...