fis3基于文件对象进行构建,每个进入fis3的文件都会实例化成一个File对象。
其构建流程大概分为三个阶段:
1.扫描项目目录拿到文件并初始化出一个文件对象的列表 扫描
2.对文件对象中每一个文件进行单文件编译 编译
3.获取用户设置的package插件,进行打包处理(包括合并图片) 打包
打包阶段
打包阶段设置了四个扩展点,通过用户配置启用某些插件
- prepackager 打包前处理插件扩展点
- packager 打包插件扩展点,通过此插件收集文件依赖信息、合并信息产出静态资源映射表
- spriter 图片合并扩展点,如 csssprites
- postpackager 打包后处理插件扩展点
单文件编译
代码校验lint-----》预处理parser-----》标准化前处理preprocessor-----》标准化standard------》标准化后处理postprocessor
lint 代码校验检查,主要检测代码是否有误;
parser 预处理阶段 主要是对异构语言等进行编译,如less,sass编译为标准的css;前端模板被编译为js等;
preprocessor 标准化前处理阶段
standard 标准化插件 处理内置语法
postprocessor 标准化后处理插件
File对象
当一个文件被实例化为一个 File 对象后,包括一些文件基本属性,如 filename、realpath 等等,当这个文件被处理时,FIS3 还会把用户自定义的属性 merge 到文件对象上