我试图弄清楚如何使用早午餐完成以下工作。这是我们应用程序的当前目录结构:
--app
--base (theme folder, considered the master for all themes)
--sass
--js
--theme2
--sass
--js
--theme3
--sass
--js
...so on
基本文件夹用作所有其他主题的母版。但是,如果另一个主题在sass目录或js目录中具有与基本文件夹中的文件匹配的文件,则它将覆盖基本文件夹中的该文件(这也适用于导入)。
到目前为止,我已经创建了this,它可以按需要的方式工作,但是它避开了早午餐管道,因为我写出了文件(当前不支持文件并置),我更喜欢使用适当的早午餐管道来进行此操作。
发生的情况是,它在基本文件夹中遇到的每个sass或js文件都用于生成另一个主题的新文件。例如,说基本主题有一个名为
main.scss
的文件。传递给编译的路径是base/scss/main.scss
。现在,我想对其他主题使用相同的文件,以便获取所有主题文件夹,并针对每个其他主题动态使用此基本main.scss文件。但是,如果其他文件目录中存在文件导入,我也会更改内部导入以替换文件导入。它不是同一文件,被吐到多个位置。问题是我想动态生成新的CSS文件以供午餐使用,以渲染到与传入的原始路径无关的其他文件夹(以及该路径的joinTo config选项)。通过调用回调,它将自动使用传递给compile方法的原始path参数。
最佳答案
在早午餐配置中使用overrides
来更改您的joinTo
,使其包含base
以及给定的主题。您也可以自定义生成输出目录或每个主题的其他内容(如果有帮助)。然后使用类似brunch build --env theme1
的命令分别运行每个版本。
关于node.js - 使用早午餐可以自定义“主题”编译吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32562524/