我正在寻找一个更有效的构建工具,如gulp for huge Projects。
早午餐似乎就是这样,但我想知道我是否可以从Node.js脚本而不是CLI运行Brunch。 文档似乎没有任何细节......
是否有任何计划或未记录的方式存档?
答案 0 :(得分:0)
原因对我来说仍然不清楚,但无论如何,这里有两种方法可以满足您的需求。
我们内部有Brunch用于Brunch的软件包。它被称为init-skeleton。您可以根据需要编写骨架,并将该包用于脚手架。
此软件包具有init
方法,可以帮助您。它有这个签名init(skeleton[, options])
。 skeleton
可能是:
gh:user/project
,github:user/project
) options
是可选的。有这些:
rootPath
- 一个字符串,它是结果目录的根路径commandName
- 一个字符串,它是将在printBanner
function中使用的命令。logger
- 一个将用于记录目的的函数。例如:
const initSkeleton = require('init-skeleton').init
initSkeleton('path/to/skeleton')
.then(() => {
console.log('Done!')
// do something else
// ...
})
如果您不是在寻找,那么还有另一种解决方案 - 使用Brunch JavaScript API。
是的,可能是你正在寻找的东西。早午餐有内部JavaScript API。此API未记录。这个API可以改变(显然是很好),所以要小心使用它。
可能您已经注意到Brunch的package.json
有main
field that corresponds to ./lib/index
。这会导出三个方法(实际上对应于Brunch's commands):
new
method使用init-skeleton
来支持新项目。build
method为建筑项目运行Brunch一次。 watch
method运行Brunch观察器进行增量构建。 build
和watch
可能对您有用。他们都使用start
function。此函数已封装以供内部使用,并具有以下签名:start(persistent, arg2, arg3)
。这里:
presistent
是一个布尔值,表示项目构建一次或注意更改。arg2
是工作目录的路径(如果不存在,则为undefined
)。 It specified by build [path]
。arg3
始终由a Command
object提供commander.js。此外,您还可以要求brunch/lib/cli
模块。该模块导出a run
method。这种方法没有任何争论。它只是解析process.argv
并正确运行早午餐。
那就是它。它可能看起来像一个黑客,它确实如此。小心使用它,因为我们将来会更改该API。请注意,这些可能性 没有记录 ,因此我们 在变更之前不会警告您 强>
尝试为您找到另一种解决方案。有时出现问题不是因为问题本身,而是因为对你使用的方法的理解不好。
希望这会对你有所帮助。