0.2.6 • Published 9 years ago

koa-assets v0.2.6

Weekly downloads
2
License
MIT
Repository
github
Last release
9 years ago

koa-assets

介绍

基于koa的前端开发环境中间件,最好用的前端本地调试映射工具,请与koa-joinkoa-charset等其他中间件配合使用。

安装

koa 依赖支持 generator 的 Node 环境,准确来说,是 node >= 0.11.9 的环境。

$ npm install koa-join
$ npm install koa-assets

请务必使用node --harmony模式运行程序,例如:

$ node --harmony index.js

为了方便,可以将在你的.bash_profile中将node设置为默认启动harmony模式的别名:

alias node='node --harmony'

Example

index.js

var koa = require('koa');
var join = require('koa-join');
var assets = require('koa-assets');

var app = koa();

app.use(join());    //koa-join 用来将combo请求分解成多个url
app.use(assets({
  urls: [{
    rule: /tm\/([\S]+?)\/[\d\.]+/,
    dest: '~/dev/tm/$1'
  }]
}));

app.listen(80);

hosts绑定

在使用koa-assets进行本地调试时,请将g.tbcdn.cng.assets.daily.taobao.net绑定到本地ip 127.0.0.1上。

127.0.0.1  g.tbcdn.cn
127.0.0.1. g.assets.daily.taobao.net

运行

$ node --harmony index.js #mac下监听80端口可能需要sudo权限

使用说明

文件查找

koa-assets将assets url请求捕获,并通过可配置的规则,映射到用户本地目录,方便开发和调试。以上面的Example为例,当我们访问:

http://g.tbcdn.cn/tm/detail/1.5.53/app.css

koa-assets的目录查找顺序依次是:

=> ~/dev/tm/detail/src/app.css
 => ~/dev/tm/detail/build/app.css
  => ~/dev/tm/detail/app.css
   => http://10.235.136.37/tm/detail/1.5.53/app.css

当然,只要用其中的一种方式找到了文件,就不会用其他方式继续查找。

配置

urls:匹配和映射规则

  • rule:匹配的url规则,支持正则和字符串
  • dest:映射的目标目录
使用案例
案例1:正则
[{
  rule: /tm\/detail\/[\d\.]+/,
  dest: '~/dev/tm/detail'
}]
案例2:正则
[{
  rule: /tm\/detail\/[\d\.]+/,
  dest: function($){
    console.log($);
    return '~/dev/tm/detail';
  }
}]
案例3:字符串
[{
  rule: 'tm/detail/1.5.53',
  dest: '~/dev/tm/detail'
}]

hosts:线上服务器ip

本地不存在的文件,会到通过请求线上服务器获取,例如koa-assets的默认配置:

{
  'g.tbcdn.cn': '10.235.136.37',
  'g.assets.daily.taobao.net': '10.235.136.37'
}

可以将g.tbcdn.cn指向线上服务器ip地址,例如:

{
  'g.tbcdn.cn': '115.238.23.250',
}

编码设定

输入编码

读取映射目录文件的文件编码,默认以utf-8方式读入。当目录文件编码不为utf-8时,可以通过设置inputCharset字段来让koa-assets进行文件读取时的自动转码,例如:

[{
  rule: 'tm/detail/1.5.53',
  dest: '~/dev/tm/detail',
  inputCharset: 'gbk'
}]
输出编码

也叫响应编码。koa-join和koa-assets响应的默认编码是utf-8,如需定制具体某些请求的响应编码可通过koa-charset中间件进行编码设定和字符编码转换,例如:

//用在koa-join和koa-assets之前
app.use(function *(next){
  yield next;
  //对指定url的请求设置成gbk编码
  if(this.url.indexOf('tm/buy') !== -1){
  	this.charset = 'gbk';
  }
});
app.use(join());
app.use(assets());
//...

License

MIT

0.2.6

9 years ago

0.2.5

9 years ago

0.2.4

9 years ago

0.2.3

9 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.9

10 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago

0.0.0

10 years ago