自定义“主题”编译可能使用早午餐?

我想弄清楚如何使用早午餐完成以下操作。 这是我们的应用程序的当前目录结构:

--app --base (theme folder, considered the master for all themes) --sass --js --theme2 --sass --js --theme3 --sass --js ...so on 

基础文件夹充当所有其他主题的主人。 但是,如果另一个主题在sass目录或js目录中具有与基本文件夹中的文件相匹配的文件,则它将覆盖基本文件夹中的该文件(这也适用于导入)。

到目前为止,我已经创build了这个工作方式,但它绕开了早午餐pipe道,我写出了文件(目前不支持文件连接),我更喜欢使用适当的早午餐pipe道来做到这一点。

会发生什么事是每个sass或js文件遇到的基本文件夹被用来生成另一个主题的新文件。 例如说,基本主题有一个名为main.scss的文件。 传递给编译的path是base/scss/main.scss 。 现在我想为其他主题使用这个相同的文件,所以我得到所有的主题文件夹,并dynamic地使用这个基本main.scss文件为每个其他主题。 但是,如果它们存在于其他主题目录中,我也会更改内部导入来replace文件导入。 它不是相同的文件正在涌入多个地点。

问题是我想dynamic生成brunch的新CSS文件以渲染到与传入的原始path(因此此path的joinTo config选项)不相关的不同文件夹。 通过调用callback,它会自动使用传递给编译方法的原始path参数。

在你的brunch-config中使用overrides来改变你的joinTo包含base加上给定的主题。 如果有帮助的话,您也可以自定义构build输出目录或其他任何主题。 然后使用像brunch build --env theme1 1命令分别运行每个brunch build --env theme1