初探FIS3

前端构建工具FIS3

FIS3 的构建主要是通过用户设置,将构建结果输出到指定的目录。
不会修改源码。

构建过程中对资源 URI 进行了替换,替换成了绝对 URL。就是相对路径换成了绝对路径

内置语法

一套前端编译工具,只要3项编译能力,就可以变得非常易用,代码可维护性瞬间提高很多。
- 资源定位
- 内容嵌入
- 依赖声明

资源定位

如图所示:
如何定位开发路径和部署环境:
如何定位开发路径和部署环境
FIS3 的构建是不会对源码做修改的,而是构建产出到了另外一个目录,并且构建的结果才是用来上线使用的。

上图中的图片logo本身在开发过程中存在于widget目录下,经过资源定位,release到了static目录下的img目录,对于资源的引用并不会出错,也有利于开发人员使用相对路径开发。

图片命名后的一串数字,是在构建过程中携带的MD5戳。
md5戳是唯一标识一个文件的“文件指纹”,url后也带相应的md5戳

内容嵌入

内容嵌入即嵌入资源
提供诸如图片base64嵌入到css、js里,前端模板编译到js文件中,将js、css、html拆分成几个文件最后合并到一起的能力

可以有效的减少http请求数,提升工程的可维护性
例如:

源码:
 <img title="百度logo" src="images/logo.gif?__inline"/>
 编译后:
   <img title="百度logo" src="data:image/gif;base64,R0lGODlhDgGBALMAAGBn6eYxLvvy9PnKyfO...Jzna6853wjKc850nPeoYgAgA7"/>
声明依赖

声明依赖能力为工程师提供了声明依赖关系的编译接口
在html中声明依赖

用户可以在html的注释中声明依赖关系,这些依赖关系最终会被记录下来,当某个文件中包含字符 RESOURCE_MAP 那么这个记录会被字符串化后替换 RESOURCE_MAP。为了方便描述呈现,我们假定项目根目录下有个文件 manifest.json包含此字符,编译后会把表结构替换到这个文件中。

目录规范

源码目录规范

.
├── page
│ └── index.html
├── static
│ └── lib
├── test
└── widget
├── header
├── nav
└── ui

  • page 放置页面模板
  • widget 一切组件,包括模板、css、js、图片以及其他前端资源
  • test 一些测试数据、用例
  • static 放一些组件公用的静态资源
  • static/lib 放置一些公共库,例如 jquery, zepto, lazyload 等

编译产出时

产出结果目录:

.
├── static
├── template
└── test

  • static 所有的静态资源都放到这个目录下
  • template 所有的模板都放到这个目录下
  • test 还是一些测试数据、用例

源码目录规范的指定是为了我们好维护,其产出目录规范是为了我们容易部署

graduation 毕业设计代码,还没完成!但可以跑哦~ Fis3+Es6+Smarty+Tmpl 项目实战 阅读以下部分假定你已经了解: 构建工具 Fis3 基于Smarty的解决方案 Fis-Smarty 一些杂碎 Less, Tmpl, Es6 ... 微薄网站的设计与实现 功能 展示,留言,评论,评论量,访问量 后台CMS 瀑布流展示,懒加载数据 接入微博组件等 技术方案 前后端分离 构建: Fis3 结构: HTML,TMPL,Smarty 样式: Less 类库/框架: jQuery util: urlParam ... 数据: 假数据模拟,后期发布开发机联调 目录结构 前端目录 └─graduation ├─ README.md ├─ home └─ common ├─ plugin # Smarty 的插件放入这个目录 ├─ smarty.conf # 本地测试的 Smarty 引擎的配置文件 ├─ fis-conf.js # fis3 的配置文件 ├─ page # 放一些页面 ├─ server.conf # 本地测试的URL转发规则配置文件 ├─ static # 非组件静态资源 ├─ test # 假数据 └─ widget # 放一些 widget,里面代码最终会被组件化封装 ├─ header # 头部模块 │ ├─ header.js # js文件es6 │ ├─ header.less # css预处理 │ ├─ header.tmpl # JS模板 │ └─ header.tpl # Smarty 复用还是挺方便的 ├─ nav # 导航模块 ├─ article # 文章模块 └─ footer # 尾部模块 目录文件不是都必须需要,一般都会包含page、widget俩目录 前端预览或发布到本地模拟开发机预览该项目 发布到本地模拟开发机预览该项目 修改 fis-global-conf.js const RECEIVER = &#39;http://127.0.0.1/graduation-rd/receiver.php&#39;; const to_path = &#39;/graduation-rd&#39;; const base_url = &#39;/Applications/XAMPP/xamppfiles/htdocs/graduation-rd/&#39;; 安装 npm install -g fis3 npm install -g fis3-smarty 后端环境下载 启动 fis3 release -r common xuecheng fis3 release -r home xuecheng fis3 release -r ... 发布成功后目录 └─ htdocs └─graduation-rd ├── application ├── home.php ├── license.txt ├── receiver.php ├── system ├── user_guide ├── template # .tpl 发布位置 ├── static # 静态资源发布位置 ├── plugin # plugin/*.php 发布位置 └── config # config/*.json 发布位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值