0.5.3 • Published 10 years ago

plum v0.5.3

Weekly downloads
158
License
-
Repository
github
Last release
10 years ago

#Plum

基于node的Demo服务器。Node作为http请求控制中心,通过server.json配置,根据请求 域名,找到所请求的文件,同时根据服务器配置的hook,对文件执行解析分发。

doc

##Use

  sudo npm install plum -g
  sudo plum

依赖php cli和node的less模块,请首先安装。

##config

配置文件: server.json。配置方式和Apache基本一直,不过没有那么复杂。

  • port: 端口,默认80
  • dirIndex: 目录中默认查找文件
  • servers: 虚拟主机相关配置,包括域名对应的base路径和特定hooks
  • hooks: 全局hook,比如.php: php,所有的php文件都会通过hooks/php.js执行

##hooks

文档。 server.js是入口文件,完成请求分发工作。主要解析过程由hooks目录下的js执行。

  • webx from 0.4.2

    webx规则,使用规则请看issue 11

  • velocity from 0.4.1, 使用velocity模板解析。

  • agent 请求转发到另外域名,配置如下

    "tms.taobao.com": {
      "customs": {"host": "110.75.19.81", "port": 80},
      "hooks" : { "*" : ["agent"] }
    }
  • origin

    origin首先判断请求为文件还是目录,如果是目录,生成目录列表。如果是文件,根据文 件后缀,初始化相对于的hook,并且接受hook发送数据请求事件。控制文件输出到客户端 的属性,和错误情况的处理。同时,在没有hook的情况下,完成静态文件读取的功能。

  • hookhook-simple

    这两个是hook规范事例,并没有具体实现,是扩展hook的规范

  • less

    less完成less解析工作,初始化时,判断文件相对应的less文件是否存在,如果存在执行 less编译,返回结果,如果不存在,退出,交给origin处理。

  • proxyAll 对所有的文件都转发到服务器端取文件,淘宝静态资源代理规则。

  • proxy

    淘宝cdn代理实现。初始化时候,首先判断文件在本地是否存在(文件查找规则由请求url 和 server.json配置的path决定),如果不存在,从cdn服务器获取数据。如果存在,则退 出,origin处理自动。

  • php/proxy 启动php自带的server,需要php v5.4.x,完整支持post、get请求

  • php/cli

    通过php cli解析php文件,现在还不支持post和get请求,作为demo环境基本够用,执行 效率和由php 自身性能决定,和转发者是node还是apache无关。

  • php/tms

    模拟tms函数,生成demo。判断规则是:文件是php,并且含有.tms,tms规则支持tms文件 引用,不过要求,每次只引用一个文件(<?php include 'a.tms.php';?>),而且文件名 中含有.tms。demo的数据根据请求的文件名,把后缀改为json,比如访问a.tms.php,demo 数据源为a.tms.json,运行时,每个函数通过name来定位数据。

##change log

  • version 0.3.10
    • 修复两个斜杠开头时代理错误的bug
  • 2012-11-14 11:40:24 version 0.3.9

    • 简化log判断,改为两条log输出规则,log和debug,log使用支持通配符*,匹配需要 输出log信息的url。debug打开所有的log信息
    • 修复bug #9
    • 增加agent钩子,用于完全代理任意域名
  • 2012-08-09 08:44:24 version 0.3.1

    • 增加log信息过滤配置,logFiles配置可显示log信息的文件,logHooks配置hook日志, logBasic显示基本信息,显示所有请求文件和请求执行时间. debug所有细节都log到 控制台。

  "logFiles":[
    {
      "path":"tmse/5137/assets",
      "ext":[".css", ".js"]
    }
  ],
  "logHooks":["less"],
  "logBasic":false,
  "debug":false
  • 增加执行时配置,使用config进行执行时配置,无需重启 服务器。
  • 修改hook php/proxy,使用php5.4启动php内置服务器,请求转发到php自带服务器, 支持post,get请求。需要php版本>=5.4
  • 增加hook proxyAllstatics,proxyAll对所有请求都从a.tbcdn.cn上取数据, statics为静态文件hook,本来和origin.js和在一起,现在拆分开。
  • 增加子规则maps配置,用于设置域名下路径映射和hook规则

  "maps":{
    "/tmse/5137/assets/":{
      "path":"/Users/eward/Sites/dev/nongye/sdk/assets/",
      "hooks":{
        ".css":["less"],
        "statics":["statics"]
      }
    }
  }
  • 2012-06-12 15:44:03
    • 增加proxy=pre作为使用预发assets的接口
    • tms规则下,build时,生成文件名对应的html文件,用于fed上预览
    • 去除tms规则下,引用模块文件名必须以.tms.php结尾的规则
    • tms规则下,自动生成.json文件,方便修改
    • 增加自动更新提示
0.5.3

10 years ago

0.5.2

11 years ago

0.5.1

11 years ago

0.5.0

11 years ago

0.4.9

11 years ago

0.4.10

11 years ago

0.4.8

11 years ago

0.4.7

11 years ago

0.4.6

11 years ago

0.4.5

11 years ago

0.4.4

11 years ago

0.4.3-2

11 years ago

0.4.3-1

11 years ago

0.4.3

11 years ago

0.4.2-1

11 years ago

0.4.2

11 years ago

0.4.1

11 years ago

0.4.0

11 years ago

0.3.10

11 years ago

0.3.9

11 years ago

0.3.8

12 years ago

0.3.7

12 years ago

0.3.6

12 years ago

0.3.5

12 years ago

0.3.4

12 years ago

0.3.3

12 years ago

0.3.2

12 years ago

0.3.1

12 years ago

0.3.0

12 years ago

0.2.6

12 years ago

0.2.5

12 years ago

0.2.4

12 years ago

0.2.3

12 years ago

0.2.2

12 years ago

0.2.1

12 years ago

0.2.0

12 years ago

0.1.3

12 years ago

0.1.2

12 years ago

0.1.1

12 years ago

0.1.0

12 years ago