hrt
v1.1.6
Published
HTTP Rewrite Tool
Downloads
70
Readme
HTTP Rewrite Tool
HRT是前端代理工具,根据配置把指定的URL指向到本地文件或远程URL。
安装
npm install hrt -g
使用方法
修改浏览器代理设置,IP:
127.0.0.1
,端口:2222
,推荐用SwitchySharp(Chrome插件)、FoxyProxy(Firefox插件)切换代理。创建配置文件
my-hrt-config.js
,添加跳转规则。代理文件:
exports.map = [ ['http://js.tudouui.com/v3/dist/js/g.js', 'D:\\project\\static\\trunk\\v3\\src\\js\\g.js'] ];
代理目录:
exports.map = [ ['http://js.tudouui.com/v3/dist/js', 'D:\\project\\static\\trunk\\v3\\src\\js'] ];
在命令行输入
hrt my-hrt-config.js
,启动HTTP服务。# 修改端口 hrt my-hrt-config.js --port=8080 # 输出调试信息 hrt my-hrt-config.js --debug=true
高级用法
移除版本号。
exports.before = function(url) { return url.replace(/([^?]+)_\d+(\.(?:js|css))/, '$1$2'); };
修改文件内容。
exports.merge = function(path, callback) { // 所有JS头部添加注释 if (/\.js$/.test(path)) { var content = Util.readFileSync(path, 'utf-8'); return callback('application/javascript', '/* test /*\n' + content); } // 其它请求 var contentType = require('mime').lookup(path); var buffer = this.util.readFileSync(path); return callback(contentType, buffer); };
注:当配置文件里有
exports.merge
时会接管所有请求,所以在程序逻辑里需要加入文件类型判断。修改URL内容。
exports.merge = function(path, callback) { if (/^http:\/\/(www|wwwtest|beta)\.tudou\.com\/programs\/view\//.test(this.req.url)) { this.util.get(this.req.url, 'gbk', function(body) { callback('text/html', body + '<!-- test -->', 'gbk'); }); return; } // 其它请求 var contentType = require('mime').lookup(path); var buffer = this.util.readFileSync(path); return callback(contentType, buffer); };