Bone
web前端开发工具
核心概念
这个模块是Bone的核心功能,为了让使用者更容易读懂Bone的配置文件,核心模块提供了一种类似操作系统里文件系统的概念,我称它为虚拟文件系统,即将一个虚拟的文件地址映射到一个真实存在的文件地址上,同时可以标注虚拟文件是由何种方式对源文件处理(注意这里不对真实文件做任何处理,源文件是指对真实文件的在内容上的拷贝),对源文件的处理模块我称它为处理器,通过下面的示例你可以对Bone的虚拟文件系统有一个初步的了解。
示例
这是一个简单Bone配置例子的示范,你需要在项目文件夹下创建bonefile.js
文件,并安装bone-cli
var bone = ;var connect = ;var less = bone;var concat = bone; // 定义生成文件夹dist,用来存放最终的文件var dist = bone; // 在dist下定义文件夹css(通过dist变量的链式调用为指定定义再其下的文件)dist // 指定映射来源src/less下所有.less后缀的文件 // 所有文件都经过less处理 // 并重命名为.css后缀 ; // 在dist下定义文件夹htmldist // 映射src/下将所有.html文件 ; // 在dist下定义文件夹jsdist // 指定映射来源文件为src/main.js // 将源文件与src/lib下所有.js后缀的文件合并 ; // 加载支持connect的插件bone;
ps:'~/'符号指bonefile.js文件所在的文件夹位置,Bone中的文件路径都使用fs.pathResolve解析,详情请参阅api
安装示例中的依赖
$ npm install bone bone-cli-connect bone-act-less bone-act-concat --save-dev
启用connect后通过浏览http://localhost:8080查看文件
$ bone connect
Grunt && Glup共存
bone;
bone;
bone.task的exec通过开启子进程,调用系统内其他命令行工具
性能
当启用bone-cli-connect
或bone-cli-proxy
时开启内部缓存,通过bone的fs api接口读取的文件内容都将会以buffer的形式缓存到内存里,当文件内容发生变化时,bone根据文件的依赖清空相应文件的缓存,缓存的粒度控制到单个文件。
文档
常用服务器
- bone-cli-connect 支持bone的api的静态服务器
- bone-cli-proxy 支持bone的api的代理服务器
常用处理器
- bone-act-less less编译器
- bone-act-sass sass编译器
- bone-act-concat 文件合并
- bone-act-include include功能
- bone-act-uglify uglify压缩器
- bone-act-cleancss css压缩器