Javascript 什么';将Brunch配置为从一个模板文件输出多个HTML/JS文件的正确方法是什么?

Javascript 什么';将Brunch配置为从一个模板文件输出多个HTML/JS文件的正确方法是什么?,javascript,node.js,configuration,npm,brunch,Javascript,Node.js,Configuration,Npm,Brunch,这是我的情况-我有多个广告单位创建,每个不同的大小和不同的动画 我正在尝试运行一个早午餐观察服务器来处理以下内容: 执行一些预处理(即:使用TexturePacker发布CSS/LESS和PNG atlas) 将app/assets/index.html的内容复制到临时文件/缓冲区(因为它使用了一些{{{handle bar like}}占位符标记来替换每个文件的配置) 替换广告宽度、高度、边框宽度、边框高度、标题和文件名等的占位符标记 将特定于该广告的JS和CSS(位于app/en_???x

这是我的情况-我有多个广告单位创建,每个不同的大小和不同的动画

我正在尝试运行一个早午餐观察服务器来处理以下内容:

  • 执行一些预处理(即:使用TexturePacker发布CSS/LESS和PNG atlas)
  • 将app/assets/index.html的内容复制到临时文件/缓冲区(因为它使用了一些
    {{{handle bar like}}
    占位符标记来替换每个文件的配置)
  • 替换广告宽度、高度、边框宽度、边框高度、标题和文件名等的占位符标记
  • 将特定于该广告的JS和CSS(位于
    app/en_???x???etc/
    )与临时文件/缓冲区内联(这将在template index.html文件的相应注释行中粘贴JS和CSS)
  • 执行一些后期处理(即:字符串替换/清理等)
我的困境是,我不确定我应该在哪里编写配置&文件&文件夹查找代码

在定义
module.exports
对象之前,我可以在
brunch config.js
中放一些代码吗(或者在定义配置之前,将其放在配置文件
需要的单独文件中(…)

那么,如何定义预处理和后处理调用呢?我知道早午餐前和早午餐后都存在
beforebunch
afterBrunch
,但我不确定是在每个index.html文件复制之前和之后调用它,还是在复制所有内容之前和之后调用它(如果有意义的话)。为了使事情变得更复杂,每个前处理和后处理调用可能需要稍微不同,以便为每个JS、CSS、atlas.png输出提供文件名

我已经用Haxe实现了类似的设置(在本例中,Haxe充当了命令行伙伴),但是如果我可以缩小这个工作流的范围,只使用NodeJS/NPM模块,那么在与客户共享项目时,我的客户的生活就会轻松得多


谢谢

这里有早午餐。是的,您可以在早午餐配置中删除代码
beforeBrunch/afterBrunch
插件用于运行shell命令。如果您想运行自己的代码,只需使用早午餐的
preCompile
/
onCompile
回调即可<在编译/复制任何内容之前调用code>preCompile,
onCompile
在编译所有内容并将资产复制到公共文件之后运行

我不确定我是否完全理解您的流程,但这肯定是可能的:

  • 使用
    preCompile
    回调和/或
    beforebunch
    插件将每个广告的
    app/assets/index.html
    复制到
    app/something/template.hbs
  • 使用的修改版本(另外将文件路径或其他内容传递给context getter函数,因为此函数不起作用)
  • 使用
    onCompile
    回调和/或
    afterbunch
    插件内联样式表并执行您可能需要的任何其他操作
  • 你认为这对你的案子有用吗?我错过什么了吗


    我必须承认,在复杂的工作流场景中,考虑到其过于简单的性质,早午餐本身可能不是表达这些问题的最佳解决方案,但对于大多数常见的前端开发用例来说,它是非常好的。

    谢谢您的回答。我设法分别在beforebunch/afterBrunch上在之前调用了
    节点myscript.js,在
    之后调用了
    节点myscript.js,但我可能需要更多的信息,以便以最少的配置使这项工作更加顺利。如果可能的话,介意我通过电子邮件/Slack与您联系吗?@bigp当然,使用我在GitHub的电子邮件