fis的实现原理和提供的三种能力

阅读更多
作者:zccst


fis原理

fis编译过程:单文件编译和打包两个阶段

fis的实现原理和提供的三种能力_第1张图片

1,单文件编译
parser:将其他语言编译为标准js、css,比如将前端模板、coffee-script编译为js,将less、sass编译为css。
preprocessor:在fis进行标准化处理之前进行某些修改,比如 支持image-set语法的预处理插件
standard:前面两项处理会将文件处理为标准的js、css、html语法,fis内核的标准化处理过程对这些语言进行 三种语言能力 扩展处理。这也就意味着,使用less、coffee等语法在fis系统中一样具备 资源定位、内容嵌入,依赖声明 的能力。该过程 不可扩展。
postprocessor:对文件进行标准化之后的处理,比如利用依赖声明能力实现的 js包装器插件,可以获取js文件的依赖关系,并添加define包装。
lint
test
optimize:代码优化阶段,使用 fis release命令的 --optimize 参数会调用该过程。fis内置的fis-optimizer-uglify-js插件和fis-optimizer-clean-css插件都是这类扩展。

2,打包过程
而fis的打包概念实际上是 资源备份。fis在打包期间最重要的生成物是 map.json,当使用fis release命令添加 --pack 参数时,会触发打包过程,此时,会根据fis-conf.js中的 pack节点配置将文件进行合并,然后把合并后的打包文件相关信息记录到map.json中,并生成相应文件。所以fis的打包结果并 不会再嵌入到某个文件内,而是利用map.json中的数据进行运行时打包信息查询。

fis系统的打包过程提供了4个可扩展的处理过程,它们是:

1. prepackager(打包预处理器):在打包前进行资源预处理。
2. packager(打包处理器):对资源进行打包。默认的打包器就是收集资源表,建立map.json的过程
3. spriter(csssprite处理器):对css进行sprites化处理
4. postpackager(打包后处理器):打包之后对文件进行处理,通常用来将map.json转换成其他语言的文件,比如php




fis三种能力
一、资源定位  可以有效的分离开发路径与部署路径之间的关系
在HTML中,HTML中有标签,有

你可能感兴趣的:(fis的实现原理和提供的三种能力)