功能

Reduce使用browserify处理JS,depsify处理CSS,两者都通过创建基于Node.js stream的管道来实现。 browserifydepsify的处理管道有同样的结构,具体可参考browserify-handbook

其中deps便是依赖解析的阶段,也是Transform起作用的阶段: 每当读取一个模块内容后,先经过Transform的变换,再进行语法解析。 因此,预处理主要是通过Transform来实现。譬如babelify。 更多Transform请见这里

如何写Transform

所有Transform都是有如下声明的函数:

function myTransform(file, opts) {
  return someTransform
}

file是当前处理的文件路径,opts是使用Transform时传入的配置。 每个Transform必须返回一个Node.js stream的Transform实例(或Duplex实例)。可以考虑使用through2来快速创建这样一个对象。

具体实例可参见这里

关于Stream的参考文献