簡體   English   中英

grunt-contrib-imagemin將文件輸出到錯誤的文件夾

[英]grunt-contrib-imagemin outputting files to the wrong folder

這是我的Gruntfile.js引用iamgemin的部分:

imagemin: {
  options: {
    optimizationLevel: 3
  },
  build: {
    expand: true,              
    src: ['img/*.png', 'img/*.jpg', 'img/*.jpeg', 'img/*.gif'],   
    dest: 'img/min/' 
  }
}

我有/ img目錄中的文件,並希望壓縮版本在/ img / min。

當我運行grunt時,壓縮文件最終會出現在/ img / min / img中,這不是我想要的。

有任何想法嗎? 指定cwd似乎什么都不做。


編輯:這是我目前的Gruntfile

imagemin: {
  options: {
    optimizationLevel: 3,
    flatten: true
  },
  build: {
    expand: true,              
    src: ['src/img/*.{png,jpg,jpeg,gif}'],   
    dest: 'build/img/' 
  }
}

指定cwd什么也沒做。 文件當前被轉儲到/build/img/src/img/1.jpg中。 我希望它們能在/build/img/1.jpg中輸出

您可以使用“flatten:true”選項使文件以img / min結束,無論它們來自何處。

或者,實際上,您應該能夠使用cwd,如下所示:

imagemin: {
  options: {
    optimizationLevel: 3
  },
  build: {
    files: {
      cwd: 'img',
      expand: true,              
      src: ['*.png', '*.jpg', '*.jpeg', '*.gif'],   
      dest: 'img/min/' 
    }
  }
}

更新 :僅為記錄,您可以使用更緊湊的表示法:['*。{png,jpg,jpeg,gif}']作為您的來源。

有關詳細信息,請參閱http://gruntjs.com/configuring-tasks#building-the-files-object-dynamically

更新2 :正如文檔中所指出的,flatten:true是文件部分的一部分。 例如:

imagemin: {
  options: {
    optimizationLevel: 3
  },
  build: {
    files: {
      expand: true,              
      flatten: true,
      src: ['img/*.png', 'img/*.jpg', 'img/*.jpeg', 'img/*.gif'],   
      dest: 'img/min/' 
    }
  }
}

你應該使用cwd ,例如:

imagemin: {
    dynamic: {
        files: [{
            expand: true,
            cwd: 'src/img',
            src: ['**/*.{png,jpg,gif,ico}'],
            dest: 'www/img'
        }],
    },
},

此代碼從src / img / *文件夾中獲取圖像並將其編譯為www / src / *

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM