2014-01-11 56 views
0

這裏是指iamgemin我Gruntfile.js部分:咕嚕-的contrib-imagemin輸出文件複製到錯誤的文件夾

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

我在/ IMG目錄中的文件,並想將壓縮版本以/ img /分鐘。

當我運行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中輸出

回答

2

您可以使用「flatten:true」選項使文件以img/min結尾,而不管它們來自何處。

,或者更確切地說,你應該能夠使用CWD,如下:

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

UPDATE:剛剛備案,你可以使用更緊湊的表示法:['* {PNG, jpg,jpeg,gif}']爲您的來源。

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

UPDATE 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/' 
    } 
    } 
} 
+0

不幸的是這沒沒有幫助。編輯我的原始帖子。 –

+0

並編輯我的答案 - flatten是「文件」部分的一部分,而不是全局「選項」。 –

0

您應該使用cwd,例如:

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

此代碼的src/IMG/*文件夾拍攝圖像,並把它們編譯成WWW/src目錄/ *

相關問題