Skip to content
/ fis-pure Public
forked from fex-team/fis-pure

基于FIS的纯前端模块化解决方案

Notifications You must be signed in to change notification settings

mmjiy/fis-pure

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fis-pure

基于FIS的纯前端模块化解决方案pure

pure是基于FIS二次封装能力封装而成的解决方案,可以直接使用,也可以参考fis-pure自行封装或组合使用插件来构建属于自己的一体化解决方案。

因为很重要,所以写在最前面

如果希望在pure的基础上添加自己的目录规范,即修改 roadmap.path 时,不可以 使用fis.config.merge或者fis.config.set,而必须按照下面的方式进行配置

fis.config.get('roadmap.path').unshift({
    reg: 'map.json',
    release: false
});

roadmap的配置具体可以参考 roadmap详解

目录

模块化开发

  • 不仅仅是脚本模块化,pure带给你模版、脚本、样式的组件化方案。
  • 自动加载模块化依赖,无需手动引入静态资源。
  • 与Node.js风格一致的模块化开发体验,告别 define

组件生态

使用 pure install 命令可以下载fis-components组件,在业务代码中可以直接通过 require 使用。

pure install zepto
var $ = require('zepto');

自动性能优化

pure可以自动压缩、合并页面引用到的所有资源,配置灵活,一个命令完成性能优化,轻松实践雅虎14条优化规则。并且这一切优化无需任何后端框架或服务支持。

前端语言支持

  • 直接编写less文件,无需额外编译工具支持。
  • 可以直接在脚本中通过 var template = __inline('path/to/template.tmpl'); 引用经过了预编译的underscore模版,无需异步请求和解析。
  • 更多的前端语言支持可以参考辅助开发

本地调试环境

  • 通过 pure server start 就能开启本地调试服务器。
  • 通过 pure release --watch --live 实现监听文件修改,自动刷新页面等功能。更多内容可以参考辅助开发

如何使用

安装

  • 安装 nodejs&npm

  • 安装pure

     npm install fis-pure -g
     pure -v

快速上手

快速上手请参考前端模块化

模块化加载

如何使用模块化加载可以参考fis-pure-demo,大致需要以下几个步骤

  • 在需要模块化资源管理的页面,如index.html中引用Mod,注意Mod需放在lib文件夹内,因为这是模块化加载库,不能被模块化。 示例
  • modules目录下添加页面脚本,如main.js,在页面中则可以通过require('main')加载静态资源。 示例
  • 需要引用其他模块,以jquery.js为例,只要在modules目录中添加代码,在main.js中就可以通过var $ = require('jquery')加载,在通过pure release发布后,页面就会自动加载jquery.js与main.js。

目录规范

pure自带了一个非常简单的目录规范

  • 所有组件化的脚本、样式、图片均放在modules目录中,可以按照组件划分目录,非模块化的脚本放在lib目录中。
  • page目录下的页面文件会发布到根目录,静态资源会发布到static目录。
  • pure install获得的组件保存在components目录

任何 目录规范部署规范编译规范 都是可配置的(配置代码)。

如果希望调整目录规范,建议将配置代码中roadmap.path的部分整体复制到项目的fis-conf.js中再进行调整,避免配置不符合预期的问题。

内置的规范包括:

  1. modules 目录下的js、css、less文件都是模块化文件,脚本会自动包装define,无需手动添加。使用require.async或者require加载模块的时候id与文件的对应规则是这样的:
文件 引用id 举个例子
/modules/main.js main var main = require('main');
/modules/jquery/jquery.js jquery var $ = require('jquery');
/modules/jquery/jquery.scroll.js jquery/jquery.scroll require('jquery/jquery.scroll');
  1. lib 目录下的文件不被认为是模块化的,请直接在页面上使用script或link标签引用。

配置

参考fis配置

更多资料

About

基于FIS的纯前端模块化解决方案

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%