前端构建工具FIS3

Gulp和Webpack特点对比  


Gulp

Gulp侧重于前端开发的整个过程的控制管理(像是流水线),Gulp是对整个过程进行控制,所以在其配置文件(gulpfile.js)中配置的每一个task对项目中该task配置路径下所有的资源都可以管理,我们可以通过给gulp配置不通的task(通过Gulp中的gulp.task()方法配置,比如启动server、sass/less预编译、文件的合并压缩等等)来让gulp实现不同的功能,从而构建整个前端开发流程。

Webpack

Webpack有人也称之为 模块打包机 ,由此也可以看出Webpack更侧重于模块打包,当然我们可以把开发中的所有资源(图片、js文件、css文件等)都可以看成模块,最初Webpack本身就是为前端JS代码打包而设计的,后来被扩展到其他资源的打包处理。Webpack是通过loader(加载器)和plugins(插件)对资源进行处理的。

FIS3

集合了webpack的根据依赖关系进行模块打包的能力,同时也保留了对项目每个文件的编译能力。

FIS3 是以 File 对象为中心构建编译的,每一个 File 都要经历编译、打包、发布三个阶段。

lint:代码校验检查,比较特殊,所以需要 release 命令命令行添加 -l 参数

parser:预处理阶段,比如 less、sass、es6、react 前端模板等都在此处预编译处理

preprocessor:标准化前处理插件

standard:标准化插件,处理内置语法等

postprocessor:标准化后处理插件

optimizer:启用优化处理插件,js、css代码压缩等


FIS3基础应用

fis.match()

fis.match(selector, props);

FIS3 把匹配文件路径的路径作为selector,匹配到的文件会分配给它设置的 props。

捕获分组:

使用 node-glob 捕获的分组,可以用于其他属性的设定,如 release, url, id 等。使用的方式与正则替换类似,我们可以用 $1, $2, $3 来代表相应的捕获分组。其中 $0 代表的是 match 到的整个字符串。

```javascript

    fis.match('/a/(**.js)', {release:'/b/$0'// $0 代表 /a/(**.js) 匹配的内容});

````

fis.match('/a/(**.js)', {

release: '/b/$1' // $1 代表 (**.js) 匹配的内容

});

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容