Grunt对静态文件目录执行操作

时间:2013-01-15 13:56:51

标签: gruntjs

我一直在努力将grunt整合到我在个人网站上所做的工作上。但是 - 它似乎不适合我当前的实现。简而言之,我使用的是静态站点生成器(Wintersmith)。我的愿望是让grunt在站点生成器生成的这个目录上执行一系列操作(缩小css,uglify for js,格式化HTML并删除空行)。

总之,这是我的问题:

  1. Grunt插件似乎总是有不同的文件源和目标。就我而言,我只是想让它获取一个文件(例如,一个CSS文件)并将其缩小到同一个文件中。
  2. Grunt似乎无法处理您希望对一系列文件执行操作的情况,其中每个操作都有不同的输出。例如,如果我希望它执行一个操作来格式化目录中所有HTML文件上生成的HTML(没有专门命名它们) - 那么我就不能。
  3. 我想在这种情况下使用grunt,但似乎我最好为此任务编写shell脚本。

1 个答案:

答案 0 :(得分:6)

  1. 只需在srcdest中指定相同的路径。

  2. 是的,你可以。请参阅Building the files object dynamically

  3. 从文档复制的示例:

    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.
            },
          ],
        },
      },
    });
    

    这适用于Grunt 0.4