繁体   English   中英

直接从node.js而不是CLI运行Brunch.io

[英]Running Brunch.io directly from node.js rather than CLI

我正在为大型项目寻找像gulp这样更有效的构建工具。

早午餐似乎就是解决这个问题的方法,但是我想知道是否可以从Node.js脚本而不是CLI运行早午餐。 文档似乎对此没有任何详细信息。

是否有任何计划或未记录的方式对此进行存档?

我仍然不清楚原因,但是无论如何,这里有两种方法可以满足您的需求。

初始骨架

我们有一个很棒的软件包,内部在Brunch中使用。 它称为init-skeleton 您可以根据需要编写框架,并使用该软件包进行脚手架。

该软件包具有可以帮助您的init方法。 它具有此签名init(skeleton[, options]) skeleton可能是:

  • 文件系统中框架的路径
  • Git URI
  • GitHub URI(例如gh:user/projectgithub: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

是的,可能正是您要找的东西。 早午餐具有内部JavaScript API。 该API未记录。 该API可能会更改(而且显然是可以更改的),因此请谨慎使用。

可能您已经注意到,Brunch的package.json具有./lib/index对应的main字段 这将导出三种方法(实际上对应于Brunch的命令 ):

  1. new方法使用init-skeleton搭建新项目。
  2. build方法运行一次Brunch来构建项目。
  3. watch方法运行Brunch watcher以进行增量构建。

buildwatch可能对您有用。 他们两个都使用start功能 该函数被封装以供内部使用,并具有以下签名: start(persistent, arg2, arg3) 这里:

此外,您还可以要求使用brunch/lib/cli模块。 此模块导出run方法 此方法不带任何参数。 它只是解析process.argv并正确运行Brunch。

而已。 它看起来确实像黑客一样,确实如此。 请谨慎使用它,因为将来我们将更改该API。 请记住,这些可能性并未记录在案 ,因此我们不会在更改之前警告您

尝试为您的问题找到另一种解决方案。 有时出现问题的原因不是因为问题本身,而是因为对您使用的方法的了解不足。

希望这对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM