labeled phases

browserify处理线的每个阶段都有一个名字, 你就可以进行插入代码修改. 通过 .get(name) 来让 labeled-stream-splicer 返回一个正确的label. 一旦你有了这个阶段的引用之后, 你可以 .push(), .pop(), .shift(), .unshift(), 以及 .splice() 你自己的转换流至处理器流水线, 或者移除 已有的转换流.

recorder

记录器(recorder)是用来捕捉发送到 deps 阶段的输入, 以至于他们可以在随后的 .bundle() 调用中重放. 不同于之前的释出版本, v5可以多次生成打包文件. 这对于像 watchify 这样每次 文件更改时去重新生成打包文件, 非常方便.

deps

依赖处理(deps) 阶段希望输入入口文件以及 require() 文件或者对象, 然后调用 module-deps 来生成一个包含依赖图中 所有文件的json的流.

module-deps 模块被调用时, 有一些自定义选项例如:

  • 设置browserify为package.json的转换字段
  • 过滤出外部依赖(external), 排除的文件(excluded), 以及忽略的文件(ignored)
  • 设置默认的后缀名为 .js 和 .json 加上browserify构造器中的 opt.extensions 选项
  • 确定全局变量

    insert-module-globals

    , 检查以及提供 process, Buffer, global, dirname, 以及 filename 的实现.

  • 设置应该由browserify提供实现的node内置模块

json

这个转换为 .json 文件在最前面添加 module.exports =

unbom

这个转换移除了BOM(byte order markers)头. 用于windows上某些文本编辑器检测文件编码. 这些标记会被node忽略, 所以browserify为了兼容性也忽略他们.

syntax

这个转换使用 syntax-error 包来检查语法错误. 并提供了错误行数和列数等有用信息.

sort

这个阶段使用 deps-sort 来排序所有的 文件(在browserify stream表现为 row), 使最后的打包具有确定的顺序.

dedupe

这个阶段的转换使用在 sort 阶段的 deps-sort 提供的重复信息来去除某些包含重复内容的文件.

label

这个阶段将可能泄露系统路径信息的基于文件的IDs转换为基于整形数字的IDs.

命名(label)阶段将会使用 opts.basedir 或者 process.cwd() 将文件路径都正常化. 以防止泄露系统路径信息.

emit-deps

这个阶段将会对 label 阶段后的每一行(即每一个文件)引发一个 'dep' 事件,

debug

如果 opts.debug 被传递到了 browserify() 构造器, 这个阶段将会转换输入, 以添加 sourceRoot 和 sourceFile 属性, 用于 pack 阶段的 browser-pack.

pack

这个阶段将带有 id 和 source 的文件行作为输入, 然后使用 browser-pack 来生成包含所有依赖的打包文件.

wrap

这是结束时一个空的阶段, 你可以在这个阶段轻松修改打包信息而不用修改已有的机制.

results matching ""

    No results matching ""