当涉及Gulp的操作方式时,我不得不提及乙烯基和节点的流。
乙烯基是Gulp使用的虚拟文件格式。在其自描述文件中:“当提到文件时,您首先想到什么?它一定是路径和内容。”它主要记录信息:
此外,它具有多个功能来确定该文件的操作类型。由于实际使用了此虚拟文件,让我们稍后再谈谈,首先创建一个文件以尝试:
这样,创建了Gulp的文件格式,下一个是Node.js的流。
流的最初意图是处理大型文件。它可以一次读取文件的一小部分,然后将其传递给呼叫者处理:
实际上,这是基于EventEdemitter创建的一组API。例如,它来自EventEdemitter。只要它基于其模式,它不仅可以传递小块文件。如果传输的数据不是缓冲区或流,则应将其设置为对象模式,并且对象模式与对象模式之间的主要区别一般模式是它不需要处理字符集代码。
回到古尔普,您还记得您之前说过吗?接下来,看看它在里面传递了什么。写一个湾飞行来尝试:
输出:
没错,这是黑胶唱片的文件。GULP使用Stream的对象模式传输这些文件。插件实际上是一种流的类型(node.js中的流式流中,流的种类包括可读,可写的,双工,转换)来转换这些文件,以下是替代文件内容的流:
现在,我们有了一个插件,可以使文件完全传输,但没有实践意义。转身的效率太低。
其余部分是GULP处理任务的注册和依赖性的逻辑。依赖性主要是处理的,但是我认为这里没有什么特别的,所以让我们自己看一下。
原始:https://juejin.cn/post/7094834339753492493