Запрет запуска Grunt в целевом каталоге

В настоящее время пытаюсь выяснить Grunt, и первая конфигурация, которую я настраиваю, это grunt-contrib-imagemin.

Мой код в настоящее время выглядит так:

module.exports = function(grunt) {
  // Parse JSON
   grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
  // Configure tasks
  imagemin: {
    dynamic: {
      files: [{
        expand: true,
        cwd: 'img/',
        src: ['**/*.{png,gif,jpg}'],
        dest: 'img/build/'
      }]
    }
  }
  });
  // Load tasks
  grunt.loadNpmTasks('grunt-contrib-imagemin');
  // Register tasks
  grunt.registerTask('default', ['imagemin']);
};

Теперь, все это делает свою работу просто отлично при первом запуске, однако проблема возникает при запуске его во второй раз. В первый раз он аккуратно минимизирует мои изображения и помещает их в 'img/build/'. Во второй и последующие разы я запускаю его, он не только минимизирует файлы в cwd, но также минимизирует файлы в целевом каталоге, создает новую папку "build" и так далее.

Есть ли какой-нибудь способ помешать Grunt минимизировать файлы в каталоге назначения?

1 ответ

Решение

Ваш целевой каталог находится внутри вашего исходного каталога. Вы также ищете все файлы изображений в img/ (который найдет файлы в img/build).

Если вы все еще хотите сохранить это, попробуйте ['**/*.{png,gif,jpg}', '!build/'] как твой srcВ качестве альтернативы измените каталог назначения.

Другие вопросы по тегам