2013-01-15 27 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

这正是上述配置所做的。这两颗星星是递归地在所有子文件夹中查看的通配模式。 –

相关问题