configurationBrunch从一个模板文件输出多个HTML / JS文件的正确方法是什么?

这是我的情况 – 我有多个广告单元可供创build,每个广告单元的大小和animation都不相同。

我试图运行一个单一的早午餐手表服务器来处理以下内容:

  • 执行一些预处理 (即:使用TexturePacker发布CSS / LESS和PNG地图集)。
  • 将app / assets / index.html的内容复制到临时文件/缓冲区(因为它使用了几个{{handle-bar-like}}占位符标签来replace每个文件的configuration。
  • replace宽度,高度,边框宽度,边框高度,标题和文件名等占位符标记。
  • 使用临时文件/缓冲区(将这个JS和CSS粘贴到来自模板index.html文件的相应注释行中)内嵌到该广告的JS&CSS(位于app/en_???x???_etc/ ) 。
  • 执行一些后处理 (即:stringreplace/清理等)

我的困境是,我不确定我应该在哪里写configuration和文件和文件夹查找代码。

我可以直接在brunch-config.js放置一些代码,然后再定义module.exports对象(或者在configuration文件被定义之前把它放在一个单独的文件中,configuration文件requires(...) )?

那么定义前后程序调用呢? 我知道afterBrunchafterBrunch存在,但我不确定是否会在每个index.html文件复制之前或之后被调用,或者在所有事情之前和复制之前(如果这是有道理的)。 而为了使事情更加复杂,每个前后处理调用可能需要略微不同,以提供每个JS,CSS,atlas.png输出的文件名。

我已经完成了与Haxe(在这种情况下充当命令行伴侣)类似的设置,但是如果我可以缩小此工作stream程以仅使用NodeJS / NPM模块,它将使我的客户的生活与他们分享项目时更容易。

谢谢!

早午餐贡献在这里。 是的,你可以把你的代码放在你的brunch-config中。 beforeBrunch/afterBrunch插件用于运行shell命令。 如果你想运行自己的代码,只需使用早午餐的preCompile / onCompilecallback。 在编译/复制任何内容之前调用preCompileonCompile编译onCompile所有内容并将资源复制到公共目录后运行。

我不确定我是否完全理解你的stream程,但这绝对是可能的:

  1. 使用preCompilecallback和/或preCompile插件将app/assets/index.html复制到每个广告的app/something/template.hbs
  2. 使用static-handlebars-brunch修改版本(另外传递一个文件path或其他东西到上下文getter函数,因为这个不这样做)
  3. 使用onCompilecallback和/或afterBrunch插件内联样式表,并做任何你可能需要的东西

你认为这是适合你的情况吗? 我错过了什么?

我不得不承认,在复杂的工作stream程场景中,早午餐可能不是最佳的解决scheme,因为它本身简单,但是对于大多数常见的前端开发用例来说,它是非常棒的。