首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

FIS源码解析-整体架构

1、 FIS支持三个命令,分别是fis release、fis server、fis install。...当用户输入fis xx的时候,内部调用fis-command-release、fis-command-server、fis-command-install这三个插件来完成任务。...同时,FIS的命令行基于commander这个插件构建,熟悉这个插件的同学很容易看懂FIS命令行相关部分源码。 2、FISfis-kernel为核心。...lib/ ├── cache.js // 缓存模块,提高编译速度 ├── compile.js // (单)文件编译模块 ├── config.js // 配置模块,fis.config...其实FIS比较精华的部分集中在fis release这个命令,不过fis server这个命令相对简单,更有助于我们从纷繁的细节中跳出来,窥探FIS的整体概貌。 假设我们已经安装了FIS

42910
您找到你想要的搜索结果了吗?
是的
没有找到

FIS 插件机制

当我们使用 FIS 插件的时候,有没有想过自己也开发一个基于 FIS 的插件,参与 FIS 打包编译的整个流程;那么问题就来了: FIS 的编译过程运行原理是怎样的呢?...FIS 编译打包的过程有哪些? 怎么参与FIS 的打包编译过程? 怎么实现一个基于FIS的插件? FIS 是怎么引入自定义插件的?...fis内置的fis-optimizer-uglify-js插件和fis-optimizer-clean-css插件都是这类扩展。...这意味着,要想扩展fis可以有 三种途径 : 1、使用fis的用户,自己需要某种插件,可以在fis安装目录的 同级,安装自己扩展的插件。...:fis编译机制内核 fis-command-release:fis release命令的提供者,处理编译过程,并提供文件监听、自动上传等功能 fis-command-install:fis install

87730

FIS源码解析-整体架构

1、 FIS支持三个命令,分别是fis release、fis server、fis install。...当用户输入fis xx的时候,内部调用fis-command-release、fis-command-server、fis-command-install这三个插件来完成任务。...同时,FIS的命令行基于commander这个插件构建,熟悉这个插件的同学很容易看懂FIS命令行相关部分源码。 2、FISfis-kernel为核心。...lib/ ├── cache.js // 缓存模块,提高编译速度 ├── compile.js // (单)文件编译模块 ├── config.js // 配置模块,fis.config...其实FIS比较精华的部分集中在fis release这个命令,不过fis server这个命令相对简单,更有助于我们从纷繁的细节中跳出来,窥探FIS的整体概貌。 假设我们已经安装了FIS

98060

FIS应用实例-require.js+CMD模块

前面文章讲了FIS的源码实现细节,这篇文章偏实战一些,给出FIS跟require.js结合的简单例子。 FIS编译流程 如果已熟悉了FIS的编译设计,可以跳过这一节,直接进入下一小结。...FIS的编译主要有三步: 命令解析-->资源编译-->资源部署 资源编译:FIS将文件资源抽象成File实例,该实例上有文件资源类型、id、内容、部署路径等的属性。...FIS的这套编译体系,使得基于FIS的扩展相对比较容易。在扩展的同时,还可以确保编译的高性能。针对资源编译环节的扩展,除非是设计不合理,不然一般情况下不会导致性能的急剧降低。...实战:修改fis-conf.js 首先,打开fis-conf.js,加入如下配置。...配置大致意思是: 在postprocessor环节,针对js文件,调用fis-postprocessor-jswrapper进行处理。

1.9K90

如何编写fis3插件

本文作者:IMWeb helondeng 原文出处:IMWeb社区 未经同意,禁止转载 目前业务正在逐步迁移到fis3和lego,有许多和业务相关的fis插件需要处理。...fis 编译流程 image.png 官方的这张图,对fis的构建流程讲述的很清楚了,主要包括单文件编译和打包,业务中的插件也主要是这两种,至于是pre还是post,差别不是特别大。...参考这里 单元测试 fis3一个很大的优势是提供了单元测试的接口,写完插件后,记得要用单元测试过下,同时这也是一个调试的过程(fis2的调试只能依赖具体的项目),主体的代码架构是: var fs = require...('fs'), path = require('path'), fis = require('fis3'), _ = fis.util, expect = require...// 测试用例 beforeEach(function() { // 这里写各种fis的配置 fis .match('*', {

50810
领券