概述
FIS官方文档:http://fis.baidu.com/fis-plus/userdoc
FIS wiki: https://github.com/fex-team/fis/wiki
FIS与FISP关系:
FIS是前端解决方案,产生之初定位就是做一个内核,提供一套编译体系以及一套静态资源管理的设计思路及其本地调试。编译体系可以简单通过配置 + 插件的方式任意扩展。
FISP是在FIS规范下的一套具体实现,后端基于smarty3+php。
具体区别可查看:http://fex.baidu.com/blog/2014/03/fis-plus/
一、环境安装
环境要求:node版本:>= v0.8.0
安装fis: npm install -g fis-plus
安装lights(lights是fis提供的包管理工具): npminstall -g lights
安装XAMPP:Apache + MySQL + PHP + Perl环境
配置环境变量如:变量名PHPRC,变量值c:xamppphp
http://oak.baidu.com/fis-plus/document.html
二、示例安装:
首先安装FIS本地的调试预览环境
$ fisp server init
使用lights下载demo到本地
$ lights install pc-demo
Demo目录结构:
├── common //公用资源模块
│ ├── fis-conf.js //配置文件
│ ├── page //页面模板目录
│ ├── plugin //smarty plugin目录
│ ├── static //静态资源目录
│ └── widget //模块化组件目录
└── home //业务模块
├── fis-conf.js
├── page
├── static
├── test //测试数据目录
└── widget
启动FIS本地调试服务器,在浏览器中预览页面:
//进入common模块路径
$ cd common
//编译发布common模块
$ fisp release -c
//进入home模块路径
$ cd ../home
//编译发布home模块
$ fisp release -c
//启动本地server服务
$ fisp server start
//在浏览器中访问页面,看demo效果
http://localhost:8080/home/page/index
三、FIS开发命令(FISP对应命令为fisp)
fis release代码编译与部署:
Usage: release [options]
Options:
-h, --help output usage information
-d, --dest <names> release output destination
-m, --md5 [level] md5 release option
-D, --domains add domain name
-l, --lint with lint
-t, --test with unit testing
-o, --optimize with optimizing
-p, --pack with package
-w, --watch monitor the changes of project
-L, --live automatically reload your browser
-c, --clean clean compile cache
-r, --root <path> set project root
-f, --file <filename> set fis-conf file
-u, --unique use unique compile caching
--verbose enable verbose output
四、开发规范
http://fis.baidu.com/fis-plus/userdoc/%E5%BC%80%E5%8F%91%E8%B0%83%E8%AF%95#toc_3
模板开发、JS开发、CSS开发、smarty插件:
http://fis.baidu.com/fis-plus/userdoc/%E5%BC%80%E5%8F%91%E8%B0%83%E8%AF%95
http://fis.baidu.com/fis-plus/userdoc/fis/%E6%A8%A1%E6%9D%BF#toc_0
本地调试:
fisp server open 命令可打开本地运行环境目录
fisp server start 开启本地服务器
fisp release –w 文件监听
fisp release –wL 文件监听并在浏览器上实时刷新
路径访问规则:http://localhost:8080/modulename/page/pagename
本地测试数据:
http://fis.baidu.com/fis-plus/userdoc/fis/%E6%9C%AC%E5%9C%B0%E8%B0%83%E8%AF%95%E6%95%B0%E6%8D%AE%E5%8A%9F%E8%83%BD
本地模拟请求转发:
http://fis.baidu.com/fis-plus/userdoc/fis/%E6%9C%AC%E5%9C%B0%E6%A8%A1%E6%8B%9F%E8%AF%B7%E6%B1%82%E8%BD%AC%E5%8F%91%E5%8A%9F%E8%83%BD
server.conf专门配置转发规则
项目很大,多模块时,一个模块配置server.conf就可以啦,比如在common模块配置全站的转发规则,否则会覆盖。
所有非rewrite、template和redirect开头的会被当做注释处理。
fis允许用户自定义全新的规则噢~ 自定义的规则优先级最高,会在server.conf保存的规则之前匹配url
线上调试测试:
在url上加上 fis_debug 参数,即可获取静态资源的独立加载,而不是加载资源包,可知道是哪个模板文件报错。
http://localhost:8080/home/page/index?fis_debug
自动编译、开发配置:
http://fis.baidu.com/fis-plus/userdoc/fis/%E8%87%AA%E5%8A%A8%E5%8C%96%E5%B7%A5%E5%85%B7#xss
发布部署、上传测试机:
http://fis.baidu.com/fis-plus/userdoc/fis/%E4%B8%8A%E4%BC%A0%E9%83%A8%E7%BD%B2#toc_0
配置API:
http://fis.baidu.com/fis-plus/userdoc/API
五、项目实例
1、项目背景
基于同一套设计内容,组建适应多平台页面模块组成不同的页面(多平台指的是内嵌不同的VC客户端,页面尺寸不一样,调用的内容不一样)
2、项目规划
目录结构
├── common //公用资源模块
│ ├── fis-conf.js //配置文件
│ ├── page //页面模板目录
│ ├── plugin //smarty plugin目录
│ ├── static //静态资源目录
│ └── widget //模块化组件目录
└── web01 //业务模块一
│ ├── fis-conf.js
│ ├── page
│ ├── static
│ ├── test //测试数据目录
│ └──widget
└── web02 //业务模块二
├── fis-conf.js
├── page
├── static
├── test //测试数据目录
└── widget
页面所有模块均放于common目录下,在业务对应目录下放置页面模板,打包配置在common/fis-conf.js,路径规则common/server.conf,css采用less(纯粹为变量的引用)。
常用命令:
Fisp server clean 清除服务器数据
Fisp server start 开启服务器
Fisp server stop 停止服务器
Fisp server open 打开本地调试环境
Fisp release –c 进入对应项目目录发布模块(只有发布用到的模块后页面才能正常访问)
Fisp release –p 发布打包后的模块
Fisp release –opd ../dist 输出打包压缩后的文件到指定目录
Fisp release –wL 文件修改后实时监控及浏览器自动刷新(实时刷新需在chrome上安装live reload插件)
生成html:
Fis默认安装没有输出html页面的功能。打开本地调试环境,修改fisdata/TestData.class.php,配置通过浏览器访问指定路径生成访项目下所有html。
在server.conf中配置转发路径“dist-项目名”,指向某一模板,当访问此路径即可以本地环境生成html目录存放html页面。
注意:输出项目中所有用到的路径均为绝对路径。
3、存在问题
(1) Less中针对不同项目设置的变量,common/fis-conf.js的打包设置(前面配置中已有的模块后面包里不会再包含),需在输出时针对不同项目进行手动调整。
在开发过程,偶尔会出现占用系统资源过多情况,导致电脑运行缓慢
(2) 部分图片文件输出后比源文件大
(3) Smarty模板产出的html模块之间结构缩进不清晰。
4、项目优化
Csssprites,按repeat类型生成sprites背景图:
fis-spriter-csssprites https://github.com/fex-team/fis-spriter-csssprites#%E4%BD%BF%E7%94%A8
fis.config.set('modules.spriter', 'csssprites');需要使用sprite的图片路径后加后缀?__sprite
background: url(/img/1px_bg.png?__sprite) repeat-x;
最后
以上就是俊秀小笼包为你收集整理的FISP笔记的全部内容,希望文章能够帮你解决FISP笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复