【问题标题】:Grunt Assemble: Multiple DistributionsGrunt Assemble:多个分布
【发布时间】:2014-06-23 16:32:33
【问题描述】:

我们正在开发一个需要一些共享布局和一些自定义布局的组装项目。

最初我们有一个默认页面的目的地。现在我们正在打破它,以便每个品牌/网站都有自己的分发文件夹。

我的问题是 - 在我们把事情搞砸之前,一切都正确组装。现在我们有多个发行版,事情变得有点混乱:)

当前设置:

模板

  |-- templates
  |  |-- _default
  |  |  |--includes
  |  |  |--layouts
  |  |  |--pages
  |  |-- brand 1
  |  |  |--includes
  |  |  |--layouts
  |  |  |--pages
  |  |-- brand 2
  |  |  |--includes
  |  |  |--layouts
  |  |  |--pages

我们的组装任务:

    assemble: {
        options: {
        flatten: true,
        production: false,
        postprocess: require('pretty'),

    // Metadata
    pkg: '<%= pkg %>',
    site: '<%= site %>',

    // Templates
    // partials: '<%= site.includes %>',
    // layoutdir: '<%= site.layouts %>',
    // layout: '<%= site.layout %>'
  },
    brand1: {
      files: {'<%= site.justin %>/': ['<%= site.templates %>/justin/**/*.hbs']}
    },
    brand2: {
      files: {'<%= site.jow %>/': ['<%= site.templates %>/jow/**/*.hbs']}
    },
    tonylama: {
      files: {'<%= site.tonylama %>/': ['<%= site.templates %>/tonylama/**/*.hbs']}
    },
    brand3: {
      files: {'<%= site.nocona %>/': ['<%= site.templates %>/nocona/**/*.hbs']}
    },
    brand4: {
      files: {'<%= site.chippewa %>/': ['<%= site.templates %>/chippewa/**/*.hbs']}
    }
}

所以问题就变成了——我们如何成功地组装到多个发行版?您可以放置​​options 并指向它们各自的布局和包含吗?

当我运行 grunt assemble:brandname 时出现错误 Warning: Layout file (forgot-password.hbs) not found

【问题讨论】:

    标签: gruntjs assemble


    【解决方案1】:

    导致错误的明显原因是您的布局被注释掉了。除此之外,您应该能够做到:

    assemble: {
      options: {
        flatten: true,
        production: false,
        postprocess: require('pretty'),
    
        // Metadata
        pkg: '<%= pkg %>',
        site: '<%= site %>',
    
        // Templates
        partials: '<%= site.includes %>',
        layoutdir: '<%= site.layouts %>',
        layout: '<%= site.layout %>'
      },
      justin: {
        options: {layout: 'justin/layout.hbs'},
        files: {
          '<%= site.justin %>/': ['<%= site.templates %>/justin/**/*.hbs']
        }
      },
      jow: {
        options: {layout: 'jow/layout.hbs'},
        files: {
          '<%= site.jow %>/': ['<%= site.templates %>/jow/**/*.hbs']
        }
      },
      tonylama: {
        options: {layout: 'tonylama/layout.hbs'},
        files: {
          '<%= site.tonylama %>/': ['<%= site.templates %>/tonylama/**/*.hbs']
        }
      },
      nocona: {
        options: {layout: 'nocona/layout.hbs'},
        files: {
          '<%= site.nocona %>/': ['<%= site.templates %>/nocona/**/*.hbs']
        }
      },
      chippewa: {
        options: {layout: 'chippewa/layout.hbs'},
        files: {
          '<%= site.chippewa %>/': ['<%= site.templates %>/chippewa/**/*.hbs']
        }
      }
    }
    

    也就是说,当您扩大规模时,它会变得更加难以管理 - 正如您所期望的那样。另一种选择是创建一个插件,为每个品牌自动生成一个“目标”(http://gruntjs.com/configuring-tasks#task-configuration-and-targets)。

    【讨论】:

    • 帮助阅读文档(呃):P。我注意到选项:{} 可以添加到任务或目标。这是有帮助的。实际上为其中一个品牌组装了完整的网站!唯一出现的问题是组装 _dist/_justin/cancel-order.html 错误警告:找不到部分正文使用 --force 继续。由于警告而中止。
    • @SalBaldovinos 您在布局中使用{{&gt;body}} 吗?我以为我们更新了正则表达式来检查{{&gt;body}}{{body}}(但我们可能已经完全删除了{{&gt;body}} 语法)。我们现在没有使用实际的部分,因此了解您正在使用的 assemble 版本并查看您的布局之一可能会很有用。
    • 是的,我正在使用 {{> body}} 不知道还有其他方法。无论哪种方式 - 它现在都在工作。
    【解决方案2】:

    使用目标中的选项,我能够修复我的错误并推送到多个 dist 文件夹。

    assemble: {
      options: {
        flatten: true,
        production: false,
        postprocess: require('pretty'),
    
        // Metadata
        pkg: '<%= pkg %>',
        site: '<%= site %>',
      },
        brand: {
          options: {
            //Template Config
            partials: '<%= site.brandIncl %>',
            layoutdir: '<%= site.brandLayouts %>',
            layout: '<%= site.brandLayout %>'
          },
          files: {'<%= site.brand %>/': ['<%= site.templates %>/brand/pages/*.hbs']}
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-31
      • 1970-01-01
      • 2014-04-12
      • 2016-06-15
      • 1970-01-01
      • 2016-04-23
      • 2015-03-11
      • 1970-01-01
      相关资源
      最近更新 更多