Node.js 在内存中以编程方式运行gulp

Node.js 在内存中以编程方式运行gulp,node.js,stream,gulp,Node.js,Stream,Gulp,具体问题 我可以从节点运行gulp并从中获取一个返回变量,而无需操作任何文件,只需读取它们吗 更多背景信息 我正试图建造一些与之相似的东西。我在磁盘上有几个文件,我想让访问者有机会在表单中选择这些文件的子集并提交 然后,访问者将得到一个下载,作为提交的返回(一个zip文件),其中包含他/她选择的、经过策划和处理的文件(缩小、连接和一些其他魔法) 现在,在我的狂热中,我创建了一个POC,它是一个NodeJS应用程序,监听端口,并严重依赖回调来完成每一组魔术,然后构建所有文件并将其压缩到内存中,并将

具体问题

我可以从节点运行gulp并从中获取一个返回变量,而无需操作任何文件,只需读取它们吗

更多背景信息

我正试图建造一些与之相似的东西。我在磁盘上有几个文件,我想让访问者有机会在表单中选择这些文件的子集并提交

然后,访问者将得到一个下载,作为提交的返回(一个zip文件),其中包含他/她选择的、经过策划和处理的文件(缩小、连接和一些其他魔法)

现在,在我的狂热中,我创建了一个POC,它是一个NodeJS应用程序,监听端口,并严重依赖回调来完成每一组魔术,然后构建所有文件并将其压缩到内存中,并将其作为结果返回给请求

那感觉很脏。我认为应该将所有的流整齐地放在一起,以便进行即插即用操作,但我不确定如何进行。我从来没有使用过gulp,我的印象是它只会处理磁盘上的文件


我想在内存中创建所有内容的原因是,我不想担心垃圾收集器和多个会话会相互覆盖。

Gulp对全局选择有效。据我所知,除了硬编码之外,没有任何现有的方法(在gulp中)来传递特定的文件

我可以简化文件选择参数化的唯一方法是:

a。创建您的任务,这样您就可以在CLI中将它们作为标志传入,这样做会很有用


b。设置base dir并创建一些自动显示文件的东西,检查一个插件,如should help

难道你不能编写gulp插件并使用它来代替gulp.dest()调用吗?在溪流/管道上操作,因此这可能是一个解决方案。我不认为在磁盘上获得结果是Gulp唯一能做的事。

所以也许Gulp不是正确的方法?有更好的想法吗?想想更大的代码,你自己的服务器端解决方案可以使用从PHP到Java的任何东西,这样你就可以把它放在主机上,在任何地方访问它。是的,我同意。但我必须使用node。届时将必须了解有关流的信息……客户的要求……;)然后使用node作为Web服务器?但您可以创建一个单独的文件夹,在其中进行gulp操作,一旦文件准备好/下载,就可以清理该文件夹。。。您可以使用guid文件夹名称,这将避免覆盖etcys,但我试图避免的逻辑是:是的,你是对的,这就是我想做的。我将不得不在以后的重构中重新讨论这个问题。你是说,当编写一个gulp插件时,有一个最终管道将它带到磁盘,我可以简单地取出并将我的数据管道到我自己的进程?我相信这很可能会给出正确的答案。@Dominik是的,我相信gulp.dest()就是这么做的。如果你编辑你的答案来展示一个小例子,我会把正确的答案给你,因为那将是合适的答案。