v-kitty
Version:
hello kitty
139 lines (111 loc) • 3.93 kB
Markdown
## kitty
便捷的搭建前端工程
## 功能概述
1. 通俗易懂,超低学习成本,只有一条命令
2. 便捷的支持第三方扩展
3. 适合node服务端和前端构建
4. 内置less解析功能
5. 支持commonjs规范,比webpack生成的代码更轻
6. 支持gulp
7. 支持include自定义变量,工程构建更灵活
8. 支持tpl中的js\css\html整合在同一个目录,便捷的组件开发\管理方式
9. 功能强大的cdn处理方案
## 快速入门
##安装
```shell
npm install v-kitty --save
```
## gulp引入
```javascript
var gulp = require('gulp');
var kitty= require('v-kitty/gulp.js');
//普通方式
gulp.task('run',function(){
gulp.src(['./include/*.html'])
.pipe(kitty())
})
//监听方式,建议使用gulp-watch,因为gulp.watch不能对删除文件监听
var gulpWatch = require('gulp-watch');
gulpWatch('./include/*html',function(){
gulp.start('run');
})
```
更多使用可以参考v-kitty/test/gulpfile.js文件夹
## 配置
* kitty.config.tag="_include" 引入标签 默认 '_include'
* kitty.config.baseDir="./" 项目根目录,如果引入绝对地址需要设置,默认为node_modules上级目录
* kitty.config.varTag.open="@@" 处理变量打开标签
* kitty.config.varTag.close="@@" 处理变量关闭标签
* kitty.config.cdnUrl="" cdn地址
* kitty.config.resourceDir="" 资源文件地址
* kitty.config.watch=true 自动监听关联文件
## 使用
####格式
_include('文件名称?_ac=执行的扩展名',options)<br/>
_include('./index.js?_ac=babel_jstag',{"title":"猜你喜欢"})
* _include 主入口
* _ac 执行的扩展名,以下划线`_`分割,打包将按先后顺序执行
* options 选项,必须是标准的JSON格式
#### demo1
```html
index.html
_include('./header.html',{"title":{"name":"猜你喜欢"}}) //数据必须使用标准的json格式(键值使用双引号)
./header.html
<title>@@title.name@@</title>
```
#### demo2
```html
index.html
_include('./index.js?_ac=babel_jstag')
```
```javascript
./index.js
var tpl = _include('tpl/item.tpl');
var Utils = require('./utils.js');
$('body').append(tpl)
```
更多使用可以参考v-kitty/test文件夹
## 内置扩展功能
传递content和actionFile参数
* jstag 内容使用`<script>`标签包裹
* csstag 内容使用`<style>`标签包裹
* less less编译
* encode 内容encodeURIComponent
* babel 如果代码使用commonjs规范,必须使用babel进行转换,注意不会es6 to es5, babel值放入在主页面引用中
* minifyJs 压缩js
* minifyCss 压缩css
* minifyHtml 压缩html
* minify 根据文件类型压缩,内部执行minifyJs,minifyCss,minifyHtml,minify建议放到less\label后一步进行
* cdn cdn处理
* beforeCompile compile执行前的动作,默认执行,方便开发者对原始内容处理,必须返回content.比如执行一些替换操作
* afterCompile compile完成后执行的动作,默认执行,方便开发者对编译后内容进一步处理,必须返回content.比如执行一些替换操作
## 如何扩展
```javascript
var kitty= require('v-kitty/gulp.js');
//覆盖内置扩展
kitty.loader.minify = function(content,actionFile){return content+'something';}
//新建扩展
kitty.loader.dosomething = function(content,actionFile){return 'something';}
```
## changelogs
#### v0.3.0
1. 调整编译处理方式,使用叶子反触发编译方式,加快编译速度
2. 调整文件入口方式,内置文件watch
#### v0.2.5
1. 增加loader.beforeCompile功能
2. 增加loader.afterCompile功能
#### v0.2.0
1. 调整loaders模式
2. 提供cdn loader模块
3. 优化版本控制
#### v0.1.12
1. 支持原生异步引入方式
##### v0.1.9
1. 增加baseDir配置
2. 增加变量关闭\打开标签配置
3. 处理js _include无法使用扩展bug
##### v0.1.7
1. 修复js _include失败问题
##### v0.1.5
1. 扩展模式修改,kitty.loader 为扩展对象
2. 支持不区分扩展函数大小写