Auto convert other components to this organization with some rules.
Switch branches/tags
Nothing to show
Clone or download
Latest commit 973e949 Jun 29, 2018
Permalink
Failed to load latest commit information.
bos php Dec 17, 2015
modules 更新版本为v3.3.1 Jul 1, 2016
packages [ci skip] saveHash zepto@v1.1.5 Apr 6, 2017
tools fix zrender Apr 14, 2016
.gitignore add more Dec 17, 2015
.travis.yml bugfix Jan 7, 2016
README.md Update README.md Apr 7, 2016
bosSync.sh debug Dec 27, 2015
browserfy.js brwoserfy Jan 8, 2016
build.sh debug Dec 27, 2015
convert.js brwoserfy Jan 8, 2016
finder.js fix Dec 24, 2015
install.md component这个词两次拼写错误 Dec 18, 2015
install.png update doc Jan 22, 2015
package.json update Jan 11, 2016
platform.md readme Jan 7, 2016
sample.png update Apr 7, 2015
saveHash.js debug Dec 26, 2015
saveHash.sh bugfix Dec 26, 2015
storeStatus.sh debug Dec 27, 2015
sync.js update Feb 3, 2016
task.yml Update task.yml Jun 29, 2018
task.yml.log Created by https://github.com/fis-components/components/blob/master/t… Apr 6, 2017
test.js override jquery Dec 29, 2015
test.sh update Jan 7, 2016
time.txt [CI ....] Nov 25, 2014
useage.md update doc Jan 23, 2015

README.md

FIS 组件生态 Build Status

建议直接使用 npm + fis3-hook-node_modoules ,目前已基本稳定。

Demo

fis3 已经原生支持使用npm的node_modules来管理模块,快使用node_modules

背景

目前互联网上已经存在大量成型的第三方组件,我们为什么不直接在fis中使用呢?虽然各类插件规范可能不一致,FIS-Components帮你统一规范,简单化使用方式!

像开发 node.js 一样开发网页应用

fis install 类似与 npm install,把现有的组件安装到当前项目。

$ fis install jquery bootstrap

Installed
├── github:fis-components/jquery@1.9.1
└── github:fis-components/bootstrap@v3.3.1

无需任何配置直接就能这样使用。

require('bootstrap/button');
var $ = require('jquery');


$('.btn').click(function() {
    alert('Magic');
});

还记得 fis 的三种语言能力吗?同样直接可以用这种路径。{组件名字}/{资源在组件中的路径}

为什么不直接使用 bower?

个人觉得有以下几个原因,导致 bower 不适合 fis。

  1. bower 包没有严格的存放规范,每个包的引用方式都可能不一样。冗余的文件多,影响编译性能。于是,我们制定了更严格的规范, 同时我们把不必要的文件去掉了。
  2. 大部分组件采用 amd/umd 规范,在 fis 的 mod.js 中不能直接使用。于是,我们的组件平台集成了转换工具,自动将 amd/umd 转成 commonJS。
  3. 有的组件我们希望是私有的,部门级别的共享,bower做不到。于是,我们的组件安装可以指定多种平台,可以直接安装来自 github、gitlab 或者 lights 上的组件。
  4. fis 开发中还有一些特有的东西,比如可公用的 smarty、velocity 模板,放在共有平台没意义。

为什么选择 commonJs 规范?

目前比较流行组件规范有 AMD 、CommonJs 和 UMD 三种(什么是 amd commonjs umd?), AMD 和 UMD 居多,而我们的选择是最简单的 CommonJs 规范与 node.js 采用的保持一致。

AMD 和 UMD 扩展自 CommonJs 规范,主要为了适用于浏览器。 而在 fis 的开发环境中,我们直接就能使用 CommonJs 规范。而且目前已被 mod.js 方案采用,广泛应用于厂内各大产品。

如何同步现有流行组件?

现状:大量现有第三方组件采用的要不是 AMD,要不就是 UMD,而我们选择的是 CommonJs 规范,如何去适配现有的这次组件?

通过简单的配置,结合 travis CI, 代码一提交就会自动把现有 AMD 或者 UMD 的组件转换成 CommonJs。

目前此机构下面的组件都来源于这些配置文件, 欢迎大家提 pull request 丰富我们的组件平台。

如果是 npm 组件想同步过来,只需要修改 task.yml 文件即可,把需要同步的组件填写入。CI 会自动转换。

sync:
  npm:
    # 当不指定版本时,默认同步最新的3个版本。
    # 当版本为 latest 时只会同步最新的那个版本。
    # 可以同时处理多个组件。如:
    # - whatwg-fetch
    # - react@0.14.5
    - whatwg-fetch@latest

支持强大的 semverion

当我们使用某个第三组件时,我们希望使用的是一个比较稳定的版本,对方大的版本更新不希望更新到,同时如果有什么小瑕疵,希望又能及时更新到。如何设置?

目前第三方库都有这么个约定,小问题修复都是发布新的小版本号,大的改动会发布大的版本号。我们只需要设置大版本号下最新的小版本就能满足这个需求。

比如:

  • jquery@~1.9.2 将会安装 >=1.9.2 && <1.10.0 中的最新一个版本。
  • jquery@^1.9.2 将会安装 >=1.9.2 && <2.0.0 中的最新一个版本。

详情