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
$ lights install
安装组件依赖。
读取当前文件夹下的package.json的dependecies节点,下载所有依赖。
$ lights install <name>@<version> Options: --repos <url> : 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>
通过关键字搜索资源。
显示相关资源的描述,仓库等。
$ lights adduser
通过用户名,密码,email创建用户。
发布资源前需要添加用户噢
$ lights publish <folder>
folder: 一个包含package.json的文件夹
如果包名(name)或者版本(version)已经存在,会发布失败. 可以添加 --force 参数来强行覆盖已存在的版本。
资源必须包括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中的版本号,仅支持具体版本号写法,不支持 >=等。否则会报错 **
前端资源聚合的资源没有强行分类,网站首页显示的资源类型,是由关键字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等各种操作)
所谓commonJS开发体验,是基于FIS的前端框架 modJS。lights无缝结合FIS的组件化开发写法,开发的widget等组件可以在FIS中自动运行。
[具体规范细节](http://fe.baidu.com/doc/fis/2.0/user/js.text#widget)
README.md为 markdown 语法的文件
组件资源根目录下放置README.md文件
为资源添加介绍,会在网站上显示噢
lights unpublish <name>[@<version>]
删除资源。如果不设定版本,会删除此资源的所有版本。
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仅支持删除资源本身
lights支持分布式的仓库存储。自行搭建的lights私有仓库,需要在lights中设置repos的url来指定。
$lights config set repos fedev.baidu.com:8889
默认的lights.baidu.com的仓库地址为 fedev.baidu.com:8889.
repos url的格式为 : 机器名或者ip地址 + 端口号。
分布式的仓库支持,后续会在仓库页面,设置数据同步的功能。
相关文档 [https://github.com/lily-zhangying/lights/wiki/newRepos]
node包管理使用详细请查看此文档
近期项目开发中遇到需要增加手电筒控制的接口(不访问camera)。此类问题实际上实现起来非常简单。本着学习的精神以及不愿意简陋的实现该功能,因此把Lights框架查看了一遍,并增加新灯的控制方式。 先从调用处开始查看: frameworks/base/services/core/java/com/android/server/BatteryService.java //调用处,获取Lig
Lights are an essential part of every scene. While meshes and textures define the shape and look of a scene, lights define the color and mood of your 3D environment. You'll likely work with more than
通常,我使用以下资源URI方案构建RESTful API: 产品还可能包含产品功能。当我想获取一些产品的特性时,我会执行一个get/products/{id}/features。 顺便说一句,如果我想向给定产品添加新功能,通常我不会提供这样的资源URI:,但我认为是给定产品的一部分,因此,我更新哪些特性可能包含以下特性: 另一方面,如果我想更新一些功能元数据,我不会使用产品资源,但我会执行如下请求
资源教程: 综合类 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 免费的编程中文书籍索引 前端书籍 前端免费书籍大全 前端知识体系 免费的编程中文书籍索引 智能社 - 精通JavaScript开发 重新介绍 JavaScript(JS 教程) 麻省理工学院公开课:计算机科学及编程导论 JavaScript中的t
向云端测试资源平台部署应用后,DaoCloud 提供了丰富的管理功能,这些功能涵盖了主流 PaaS 平台的核心能力,还在此基础上,增加了与持续交付相关的自动发布、分支发布等功能,下面我们与您详细介绍。 容器 调整容器实例的资源配置 选择容器运行环境 增加或修改启动命令 调整容器实例个数 进行修改后,容器会进入更新状态,在修改完成后,容器会被重启。再次提醒,单独的容器实例在被重启或重新部署后,其中临
我对RxJava非常陌生,我仍在尝试理解数据流,但我想知道这是否可能,然后再深入兔子洞。 目标:解耦API资源并允许其分布,同时为客户端(web/移动)提供灵活性,以便根据仅提供给少数“已知”APIendpoint的href链接获取数据。 我从一个API中收集了JSON对象,其中每个json都有一个“href”字段,该字段提供指向API资源的链接,可以在其中检索数据的全部详细信息。例如: 检索此集
资源合并(打包) 关于资源合并,在 fis3 中有多种方式来实现。为了搞清楚他们都有些什么特点,适用于什么场合,我觉得有必要聚集在一起一一说明下。 packTo 命中目标文件,设置 packTo 即能完成简单的合并操作。 fis.match('/static/folderA/**.js', { packTo: '/static/pkg/folderA.js' }); fis.match('/