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

dtu*_*net 1 gruntjs

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

总之,这是我的问题:

  1. Grunt插件似乎始终具有不同的文件源和目标.就我而言,我只是想让它获取一个文件(例如,一个CSS文件)并将其缩小到同一个文件中.
  2. Grunt似乎并不处理您希望对一系列文件执行操作的情况,其中每个操作都有不同的输出.例如,如果我希望它执行一个操作来格式化目录中所有HTML文件上生成的HTML(没有特别指定它们) - 那么我不能.

我想在这种情况下使用grunt,但似乎我最好为这个任务编写一个shell脚本.

Sin*_*hus 6

  1. 只需在src和中指定相同的路径即可dest.

  2. 是的你可以.请参阅动态构建文件对象

从文档复制的示例:

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.
        },
      ],
    },
  },
});
Run Code Online (Sandbox Code Playgroud)

这与Grunt 0.4有关