FMPP配置
我们最终想实现的是要将fmpp与前端构建工具gulp集成,所以我们可以在这里将fmpp看作是一个命令行工具,供在构建任务中调用运行;由于它不是原生的gulp任务编写的,所以它的配置无法通过gulp配置,需要使用一个专门的配置文件, , 虽然配置文件的名称和路径可以任意指定,但是为了可以在gulp中方便配置, 统一将配置文件放于与执行fmpp的gulpfile.js同级,并且命名为config.fmpp, 因为如果配置文件名为config.fmpp或者fmpp.cfg时,执行时无需特殊指定;
主要配置如下:
sourceRoot: src // ftl目录
sources: index.ftl // 需要编译为html的文件, 如果没有此项配置, 那么sourceRoot下的所有ftl都将被编译
outputRoot: dist // 输出目录
logFile: log.fmpp // 日志打印目录, 可查看出错信息
modes: [execute(*.ftl)] // 对sourceRoot下的ftl文件进行操作
replaceExtensions:[ftl,html] // 编译后后缀改为html
data:tdd(../mock/index.tdd) // 数据文件, 路径默认相对于sourceRoot
sourceRoot
fmpp要处理文件的根目录,所有要处理的文件必须位于此目录下,并且ftl模板内的根目录就对应此虚拟目录;
outputRoot
sourceRoot对应的输出目录就是outputRoot,fmpp将解析后的文件输出至此目录;
sources
需要编译为html的文件, 如果没有此项配置, 那么sourceRoot下的所有ftl都将被编译;
data
data就是存放假数据的地方,还有一个属性是dataRoot,默认情况下dataRoot就是sourceRoot,推荐的做法是,在sourceRoot下创建一个子目录, 用于存放假数据文件,这些假数据是无需fmpp解析的, 所以在子目录下新建一个名为ignoredir.fmpp的文件, 就可以过滤此目录;数据格式默认是tdd格式,一种类似json的格式;
modes
一共有4中mode,mode就是fmpp提供了一些功能函数,如
excute
,copy
,renderXml
,ignore
; 根据字面意思就可以理解copy和ignore的作用,copy就是不处理文件, 直接复制,ignore则是要忽略的文件,excute标识要处理的文件pattern;replaceExtensions
修改后缀的方法,类似的还有removeExtensions,removePostfixes等;可参考Output file name deduction