内置的默认配置
- 由于fis系统是完全插件化的,因此fis.config对象会有一些内置配置用以为用户提供零配置下的基本功能,所以配置文件使用
fis.config.merge
或者fis.config.set
接口来追加用户配置。而初始化的内部数据是
<pre>
fis.config.init({
project : {
charset : 'utf8',
md5Length : 7
}
});
</code>
项目配置project
- charset指定项目编译后产出文件的编码。
<pre>
fis.config.merge({
project : { charset : 'gbk' }
});
</code> - md5Length文件MD5戳长度.
<pre>
project : { md5Length : 8 }
</code> - md5Connector设置md5与文件的连字符.
<pre>
fis.config.merge({ project : { md5Connector : '.' }});
</code> - include 设置项目源码文件include过滤器。只有命中include的文件才被视为源码,其他文件则忽略。
<pre>
fis.config.merge({ project : { include : 'src/**' }});
</code> - exclude设置项目源码文件exclude过滤器。如果同时设置了 project.include和 project.exclude
则表示在include所命中的文件中排除掉某些文件。
<pre>
fis.config.merge({ project : { exclude : /^/_build//i }});
</code> - fileType.text追加文本文件后缀列表
- fileType.image追加图片类二进制文件后缀列表。
- watch.exclude设置项目源码监听时不监听的文件列表。
- watch.usePolling设置项目源码监听的方式, usePolling
为 true
时会使用轮询的方式检查文件是否被修改,比较消耗CPU,但是适用场景更广。设置为 false
后会使用系统API进行文件修改检查,对性能消耗较小,但是可能由于系统版本不同,会存在兼容性问题。
插件配置modules
- parser配置编译器插件,可以根据 文件后缀 将某种语言编译成标准的js、css、html语言。由于parser的主要职责是统一标准语言,因此它经常会和 roadmap.ext 配置配合使用,用于标记某个后缀的文件在parser阶段之后当做某种标准语言进行处理。
- preprocessor配置 标准化预处理器插件,可以根据 文件后缀 对文件进行预处理。
比如fis-preprocessor-image-set
插件,用于实现对retina屏的css的image-set属性支持。 - postprocessor在fis对js、css和类html文件进行语言能力扩展之后调用的插件配置,可以根据 文件后缀 对文件进行后处理。这个阶段我们可以对文件进行一些相关处理,比如amd包装等。fis内置的 fis-postprocessor- jswrapper 插件就是在这个阶段对js进行包装的。
- optimizer单文件编译过程中的最后阶段,对文件进行优化。
通常是压缩、xss修复等工作,fis内置了3个压缩插件: fis-optimizer-uglify-js、fis-optimizer-clean-css、fis-optimizer-png-compressor。
- prepackager在fis打包操作前调用的插件, **不管调用fis release命令时是否使用 --pack 参数,该插件均会被调用。
- packager打包处理插件
默认值:'map', fis内置了打包插件 fis-packager-map
,生成 map.json 文件
调用fis release命令时,添加 --pack 参数,该插件才会被调用。
- postpackager打包后处理插件。
在fis打包操作后调用的插件, 不管调用fis release命令时是否使用 --pack 参数,该插件均会被调用。
<pre>
fis.config.set('modules.postpackager', 'simple');
</code>
插件运行配置settings
插件要工作,偶尔也需要配置数据
内置插件运行配置
- postprocessor.jswrapper
type:包装方式。可选值目前只有 'amd'
template:使用模板来定义包装结构
wrapAll: 是否包装所有js文件。默认是false,只对标记为 isMod 的文件进行包装 - optimizer.png-compressorpng图片压缩器运行配置。
pngquant会将所有 png24的图片压缩为 png8,压缩率极高,但alpha通道信息会有损失。 - optimizer.uglify-js
uglify-js压缩器配置。
![Upload Paste_Image.png failed. Please try again.]
- spriter.csssprites
csssprite处理运行配置,以css文件为单位,对其引用的png、gif、jpg、jpeg等图片进行csssprite合并处理
![Upload Paste_Image.png failed. Please try again.]