grunt-processhtml定义可变数量的文件

cou*_*ing 4 gruntjs assemble

我正在使用grunt-processhtml在生产之前替换一些东西.诀窍是,我有一个可变数量的文件,通过汇编吐出来,我真的想保持我的数据与我的gruntfile分开.我似乎必须做一些事情来声明每个需要操作的文件:

    processhtml: {
      deploy: {
        options: {
          process: true,
        },
        files: {
          '/one_file.html': ['/one_file.html'],
          '/two_file.html': ['/two_file.html'],
          '/red_file.html': ['/red_file.html'],
          '/blue_file.html': ['/blue_file.html']
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

你可以想象,这可能会非常麻烦.

我知道,对于大多数grunt特定的节点模块,你可以使用一些通配技术,所以我修改了它.

    processhtml: {
      deploy: {
        options: {
          process: true,
        },
        files: {
          '/**.html': ['/**.html']
        }
      }
    },
Run Code Online (Sandbox Code Playgroud)

但这似乎也不起作用......有什么建议吗?

编辑:添加更多背景信息(如果我正在为树木丢失森林)

问题

我的开发环境有几个主要目标.

  • 使用非压缩文件在本地查看页面以进行调试(适用于html,css和js)
  • 我旅行时完全脱机工作的能力,而且经常没有互联网.这也可以使页面重新加载更快.我遇到的一些问题,以及为什么我来到processhtml:
    • 使用CDN来提供像jQuery这样的东西.
    • 谷歌字体:如果我引用谷歌字体,它会根据我的浏览器现场生成CSS ...但由于我有我在本地安装的字体,我只是想使用它们,所以我需要一种保持插入谷歌字体的方法.
  • 我希望能够在部署之前压缩和连接每个资产.

我是怎么回事(无论好坏)

所以,现在我将告诉你我设计的系统.我的项目中有三个顶级目录,其中有三个不同的阶段

  1. src:这是我的所有汇编文件都存在的地方.在这里,我有大量的hbs文件和部分,因此保持我的标记干燥,我的最小数据在YAML(我喜欢,因为我可以让同事填写它).

  2. dev:一旦文件被"汇编",它们就会在这个目录中结束.这里它们是未压缩的,带有livereload的连接服务器从这里运行.

  3. 部署:此时,我有一个名为'preflight'的繁琐任务,它压缩了我的所有文件,并摆脱了任何残余,留下了一个超级时尚的流线型文件夹准备好另一个rsync任务将其发送到生产.

无论如何,如果你有不同的方法来实现这一目标.我很想听听:)

谢谢!

cou*_*ing 13

在编写完成任务的方法,然后进一步检查手册之后,我发现了这个:

http://gruntjs.com/configuring-tasks#building-the-files-object-dynamically

我的Gruntfile配置包含看起来像这样的东西,它就像一个魅力:

    processhtml: {
      deploy:{
        options: {
          process: true,
        },
        files: [
          {
          expand: true,     
          cwd: 'deploy/',   
          src: ['**/*.html'],
          dest: 'deploy/',  
          ext: '.html'
        },
        ],
    }
Run Code Online (Sandbox Code Playgroud)