f2e-server
f2e-server 已经完全改写 新地址 注意使用1.0版本安装 使用
npm i f2e-server@1.*
查看文档: 需要通过git下载当前仓库 并切换gh-pages
分支后 使用 f2eserver 启动目录
f2e-server 是基于nodejs平台的HTTP服务器,提供了基本的模板引擎以及常用的前端工具。
a nodejs based http-server with easy-template-engine and several F2E-utils
点击进入 f2e-server.com 查看详细文档 或 点击链接加入群【f2e-server】:
changelog: change.log
全局安装
f2e-server 1.8.3 以后支持全局安装
- 安装: $
npm install f2e-server@1.* -g
- 启动:$
f2eserver start
服务启动后,会在当前目录自动生成 f2e-conf.js 文件, 可参考修改 - 修改hosts:$
f2eserver hosts
- 恢复hosts:$
f2eserver reset
局部安装
- 安装: $
npm install f2e-server
- 进入服务器根目录: $
cd node_modules/f2e-server
- 启动:$
npm start
服务启动后,会在f2e-server外层目录自动生成 conf.js 文件, 可参考修改 - 修改 hosts:$
node hosts
- 恢复 hosts:$
node hosts reset
- 配置文件参考: nodeLib/config/conf.js
文件服务器
f2e-server 提供基本的文件服务器功能, 支持通过配置文件索引项目根目录绝对路径 【root】
- 欢迎页面配置相对root的路径 【welcome】
- 404页面配置文件绝对路径 【notFound】
- 配置是否支持文件夹目录展示 【fs_mod】
- 当前服务端口号 【port】
- 当期服务可支持最大并发链接数 【maxConnections】
模板引擎
f2e-server 默认使用underscore模板, 参见 nodeLib/common/handle.js#L18
- 默认开启模板引擎 【runJs】 以及依赖的配置 【handle】
- 关闭后很多插件功能将失效
- 支持模板的引用和包含http://www.w3cfuns.com/blog-5443978-5399247.html
- $include[引用片段路径]
- $belong[当前片段被包含母版路径]
- $[placeholder] 包含母版中标记引入片段位置
- 模板运行时环境变量:
- request: 包转完成的当前请求
- request.data: GET请求参数包装, 如
request.data.type
表示GET请求参数type的值 - request.post: POST请求参数包装, 获取方式同GET, __ 注:GET请求时, request.post === null __
- request.util:
- request.util.mime: f2e-server扩展mime模块
- request.util.conf: 当前服务配置
- request.util.staticServer: 预留staticconf配置的url
- request.$:
- request.$.title: 当前请求路径 pathname
- request.$.host: 当前host
- request.$.fileList: 文件夹列表存储
- request.data: GET请求参数包装, 如
- response: 原生的响应对象
- require: nodejs 全局require
- _: underscore源对象
- request: 包转完成的当前请求
资源合并和压缩
中间件支持
f2e-server采用中间件的动态解析模式, 参见 nodeLib/filter/middleware.js
项目输出
- 模板、 资源合并压缩、中间件支持(或混搭使用) 均被支持输出到结果文件目录中 【output】
- 如果安装相关图片压缩依赖的模块, build默认支持在构建输出结果时对png,jpg等类型图片进行无损压缩
- 中间件中 在请求头设置 middleware-type 属性, 将能够在输出时, 修改响应的文件后缀名
- 如在开发中使用响应后缀,建议参考 【agent】配置
服务器host转发功能
f2e-server 支持本地环境通过不同的hosts域名分别请求不同的项目
- nodeLib/config/conf.js 中所有返回key都被认为是一组本地域名类型 (如:localhost / test.abc.com / test.xuan.news.cn)
- 如果多组配置使用了相同的端口号, 将需要使用指定域名访问(需要修改hosts文件)
- 在安装目录中提供了快速修改备份/恢复 hosts文件的模块,
- 可以直接使用
node hosts
修改 或node hosts reset
恢复修改前的hosts文件 - 默认使用windows环境的系统路径 (linux/unix 请根据需求修改)
- 权限不足时,抛出异常,请使用管理员权限运行!
- 可以直接使用
代理功能
f2e-server 方便的支持了代理远程请求功能 【agent】配置
- get方法通过分析请求路径,返回一组相关代理配置
- host: 远程代理的host 默认为 当前host
- port: 远程代理的端口号, 默认为 80
- origin: 支持origin格式配置: 优先级低于host&port, 因为需要实时解析,性能不及host配置
- path: 路径转换方式, 可以根据本地路径转换成远程指定其他路径, 默认跟远程路径相同
- cookie: 远程代理cookie ( 直接copy远程请求的请求头中的cookie )
- save: 代理请求资源保存到本地对应文件目录 ( 资源批量下载以及中间件模板编译 )
插件功能
f2e-server 提供了一些有用的插件, 提倡开发者扩展