Lights 是FIS包管理工具。提供便捷、易用的资源安装、发布、搜索,管理工具。用于团队间快速共享资源,提升开发效率。 访问 lights.baidu.com ,找到更多资源。
$ npm install -g lights
lights被发布为一套npm包,对它对环境的要求是:
操作系统:任何能安装 nodejs 的操作系统
node版本:>= v0.8.0
安装好lights之后,执行 lights -v,如果看到版本信息,恭喜,你已拥有lights包管理工具啦!
具有CommonJS的模块化开发体验
管理模板、JavaScript、CSS、img等多种资源
完美支持FIS的模块化规范
大量丰富的包资源(业务组件、smarty插件,FIS demo等)
便捷、易用的包安装、发布、搜索
自动管理包依赖,无冗余依赖下载
执行 lights –help 让我们来看一下lights命令的相关帮助:
Usage: lights <command> Commands: install install resource from lights search search resource of lights adduser add user of lights publish publish resource to lights unpublish remove resource to lights owner change ownership of resource config set or get config if lights Options: -h, --help output usage information -v, --version output the version number
team/lights#install----%E4%B8%8B%E8%BD%BD)install 下载
$ lights install
安装组件依赖。
读取当前文件夹下的package.json的dependecies节点,下载所有依赖。
$ lights install <name>@<version>
Options: –repos : repository,仓库地址
lights install 下载资源以及资源的所有依赖到当前目录。
不输入version时,默认下载最新版本
当前目录已经存在该资源的,提示已经存在,不会覆盖,需要手动删除才能继续下载。
–repos : lights默认仅与一个仓库交互,仓库之间没有同步时,可以设置–repos 参数,指定仓库下载。 例如,lights install gmu –repos fedev.baidu.com:8889
repos的 url的格式为 : 机器名或者ip地址 + 端口号。
默认的lights.baidu.com的仓库地址为 fedev.baidu.com:8889.
搜索
$ lights search <key>
通过关键字搜索资源。
显示相关资源的描述,仓库等。
team/lights#adduser----%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7)adduser 添加用户
$ lights adduser
通过用户名,密码,email创建用户。
发布资源前需要添加用户噢
team/lights#publish----%E5%8F%91%E5%B8%83)publish 发布
$ lights publish <folder>
folder: 一个包含package.json的文件夹
如果包名(name)或者版本(version)已经存在,会发布失败. 可以添加 --force 参数来强行覆盖已存在的版本。
team/lights#packagejson–%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6)package.json 配置文件
资源必须包括package.json文件
{
“name”: “myproject”, “version”: “0.0.1”, “description”: “An example lights components”, “dependencies”: { “jquery” : “1.7.1” }, “repository”: { “type”: “git”, “url”: "https://github.com/myproject” }, “keywords”: [ “scaffold”, “assets” ], “author”: “me”, “license”: “MIT” }
资源有依赖的时候,package.json添加dependencies节点。例如
“dependencies”: { “Chart” : “0.2.0”, “jquery” : “2.0.3” } }
依赖的文件需要都publish到lights的仓库中,否则下载依赖会失败。依赖的组件还有依赖时,会递归下载。
组件以及依赖全部下载到相同目录,没有目录嵌套 。
注意:组件开发中,如果使用依赖的方式,注意相对路径的写法,保证组件下载后可用。
目前 package.json中的版本号,仅支持具体版本号写法,不支持 >=等。否则会报错
team/lights#keywords–%E8%B5%84%E6%BA%90%E5%88%86%E7%B1%BB)keywords 资源分类
前端资源聚合的资源没有强行分类,网站首页显示的资源类型,是由关键字 keywords 筛选出的。包含资源数目最多的才会显示出来噢~
默认提供以下关键字,推荐选择默认keywords,让其他同学更容易找到你的资源~ 默认keywords类型:
framework (基础库资源 —— backbone,jquery等) css (css资源,组件等) test (测试相关资源) widget (组件化资源(html组件化,js组件化) smartyPlugin (smarty插件) assets 素材(icon,图片等) kernal (FIS 核心资源) monitor (监控资源 —— webspped, 统计脚本,hunter等) scaffold (脚手架资源 —— 各种使用demo,代码框架等) html5 (html5资源) utils (基础util资源 —— date,array等各种操作)
team/lights#commonjs%E5%BC%80%E5%8F%91%E4%BD%93%E9%AA%8C)commonJS开发体验
所谓commonJS开发体验,是基于FIS的前端框架 modJS。lights无缝结合FIS的组件化开发写法,开发的widget等组件可以在FIS中自动运行。
[具体规范细节](http://fe.baidu.com/doc/fis/2.0/user/js.text#widget)
team/lights#readmemd–%E4%BB%8B%E7%BB%8D)README.md 介绍
README.md为 markdown 语法的文件
组件资源根目录下放置README.md文件
为资源添加介绍,会在网站上显示噢
team/lights#unpublish–%E5%88%A0%E9%99%A4)unpublish 删除
lights unpublish <name>[@<version>]
team/lights#owner—%E7%BB%B4%E6%8A%A4%E4%BA%BA)owner 维护人
lights owner ls <package name> lights owner add <user> <package name> lights owner rm <user> <package name>
ls : 列出对资源有修改权限的维护人。
add : 对资源添加维护人。
rm : 删除资源的维护人。
注意:所有资源的操作权限只有两种。可修改与不可修改。
设置
$ lights config set <key> <value> $ lights config get <key> $ lights config ls
ls : 列出lights所有的设置,包括 username,email,repos。
set : 对lights进行设置。目前仅支持设置 repos,修改username等请使用adduser命令。
get : 获取lights设置。可以根据key值来获取。
更新
$ lights update <pkg>
更新资源到最新版本。
update会覆盖更新 。原有已经下载的包会被覆盖,包括所有依赖。
删除
$ lights remove <pkg>
删除已经安装的资源。删除目录为命令行所在的目录。
remove不会删除依赖资源 。删除依赖可能会导致其他依赖的资源不可用,remove仅支持删除资源本身
team/lights#%E8%AE%BE%E7%BD%AE%E4%BB%93%E5%BA%93)设置仓库
lights支持分布式的仓库存储。自行搭建的lights私有仓库,需要在lights中设置repos的url来指定。
$lights config set repos fedev.baidu.com:8889
repos url的格式为 : 机器名或者ip地址 + 端口号 。
分布式的仓库支持,后续会在仓库页面,设置数据同步的功能。
team/lights#%E6%90%AD%E5%BB%BA%E7%A7%81%E6%9C%89%E4%BB%93%E5%BA%93)搭建私有仓库
相关文档 [https://github.com/lily-zhangying/lights/wiki/newRepos]
team/lights#node%E5%8C%85%E7%AE%A1%E7%90%86)Node包管理
node包管理使用详细请查看此文档