[英]Running Brunch.io directly from node.js rather than CLI
我正在为大型项目寻找像gulp这样更有效的构建工具。
早午餐似乎就是解决这个问题的方法,但是我想知道是否可以从Node.js脚本而不是CLI运行早午餐。 文档似乎对此没有任何详细信息。
是否有任何计划或未记录的方式对此进行存档?
我仍然不清楚原因,但是无论如何,这里有两种方法可以满足您的需求。
我们有一个很棒的软件包,内部在Brunch中使用。 它称为init-skeleton 。 您可以根据需要编写框架,并使用该软件包进行脚手架。
该软件包具有可以帮助您的init
方法。 它具有此签名init(skeleton[, options])
。 skeleton
可能是:
gh:user/project
, github:user/project
) options
是可选的。 这些有:
rootPath
—一个字符串,它是结果目录的根路径 commandName
—一个字符串,它是将在printBanner
函数中使用的命令。 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
具有与./lib/index
对应的main
字段 。 这将导出三种方法(实际上对应于Brunch的命令 ):
build
和watch
可能对您有用。 他们两个都使用start
功能 。 该函数被封装以供内部使用,并具有以下签名: start(persistent, arg2, arg3)
。 这里:
presistent
是一个布尔值,指示应该构建项目一次还是监视更改。 arg2
是工作目录的路径(如果不存在,则为undefined
)。 它由build [path]
指定 。 arg3
始终是 commander.js提供的Command
对象 。 此外,您还可以要求使用brunch/lib/cli
模块。 此模块导出run
方法 。 此方法不带任何参数。 它只是解析process.argv
并正确运行Brunch。
而已。 它看起来确实像黑客一样,确实如此。 请谨慎使用它,因为将来我们将更改该API。 请记住,这些可能性并未记录在案 ,因此我们不会在更改之前警告您 。
尝试为您的问题找到另一种解决方案。 有时出现问题的原因不是因为问题本身,而是因为对您使用的方法的了解不足。
希望这对您有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.