2013-01-15 26 views
1

我一直在努力爲我在我的個人網站上所做的工作集成grunt。然而 - 它似乎不適合我當前的實施。總之,我正在使用靜態網站生成器(Wintersmith)。我的願望是咕to在站點生成器生成的該目錄上執行一系列操作(縮小CSS,uglify for js,格式化HTML並移除空行)。Grunt在文件的靜態目錄上執行操作

總之這裏是我的問題:

  1. 咕嚕插件似乎總是有不同的源和目標文件。在我的情況下,我只想讓它獲取一個文件(例如,一個CSS文件),並將它縮小到同一個文件中。
  2. Grunt似乎無法處理您希望對一系列文件執行操作的情況,其中每個操作都會有不同的輸出。例如,如果我希望它執行一個操作來將所生成的HTML格式化爲目錄中所有HTML文件的格式(而不是專門對它們進行命名) - 那麼我就不能。

我想在這種情況下使用grunt,但似乎我只是最好爲這項任務編寫一個shell腳本。

回答

6
  1. 只需在srcdest中指定相同的路徑即可。

  2. 是的,你可以。見Building the files object dynamically

例如,從文檔複製:

grunt.initConfig({ 
    minify: { 
    dynamic_mappings: { 
     // Grunt will search for "**/*.js" under "lib/" when the "minify" task 
     // runs and build the appropriate src-dest file mappings then, so you 
     // don't need to update the Gruntfile when files are added or removed. 
     files: [ 
     { 
      expand: true,  // Enable dynamic expansion. 
      cwd: 'lib/'  // Src matches are relative to this path. 
      src: ['**/*.js'], // Actual pattern(s) to match. 
      dest: 'build/', // Destination path prefix. 
      ext: '.min.js', // Dest filepaths will have this extension. 
     }, 
     ], 
    }, 
    }, 
}); 

這涉及到咕嚕0.4

+0

這肯定是讓我拉近了許多。問題 - 如果你有文件(比如在一個子目錄中也有多個目錄的所有HTML文件) - 你能指定它們是以它們在相同的文件夾結構中輸出嗎?所以如果我想運行格式HTML任務 - 並且我有3個文件 - index.html some_dir/index.html和some_other_dir/file.html。有沒有一種方法可以動態構建這些文件,並將它們輸出到正確的文件夾中?我沒有在文檔中看到。 – dtuckernet

+0

這正是上述配置所做的。這兩顆星星是遞歸地在所有子文件夾中查看的通配模式。 –

相關問題