Web代理工具NProxy
不需要使用Fiddler Charles拦截http请求了,我们可以使用前端调试利器NProxy。只需要一个npm包,加上一个配置文件,并且支持全平台。
安装
npm install -g nproxy (node >= v0.8.x is required)
使用
nproxy -l replace_rule.js
Setting your browser's proxy to 127.0.0.1:port(8989 by default)
这样就会将你浏览器的代理设置为localhost:8989了。
代理本地到远程和代理远程到本地
- 将本地api映射到服务器上 这个功能现在webpack-dev-server也有这个功能了
用本地文件代理线上文件
{
pattern: 'homepage.css',
responder: '/path/to/homepage.js'}
替换线上一个目录下的所有文件
模板文件
module.exports = [
// 1. replace single file with local one
{
pattern: 'homepage.js', // Match url you wanna replace
responder: "/home/goddyzhao/workspace/homepage.js"
},
// 2. replace single file with web file
{
pattern: 'homepage.js', // Match url you wanna replace
responder: "http://www.anotherwebsite.com/assets/js/homepage2.js"
},
// 3. replace combo file with src with absolute file path
{
pattern: 'group/homepageTileFramework.*.js',
responder: [
'/home/goddyzhao/workspace/webapp/ui/homepage/js/a.js',
'/home/goddyzhao/workspace/webapp/ui/homepage/js/b.js',
'/home/goddyzhao/workspace/webapp/ui/homepage/js/c.js'
]
},
// 4. replace combo file with src with relative file path and specified dir
{
pattern: 'group/homepageTileFramework.*.js',
responder: {
dir: '/home/goddyzhao/workspace/webapp/ui/homepage/js',
src: [
'a.js',
'b.js',
'c.js'
]
}
},
// 5. Map server image directory to local image directory
{
pattern: 'ui/homepage/img', // must be a string
responder: '/home/goddyzhao/image/' //must be a absolute directory path
},
// 6. Write responder with regular expression variables like $1, $2
{
pattern: /https?:\/\/[\w\.]*(?::\d+)?\/ui\/(.*)_dev\.(\w+)/,
responder: 'http://localhost/proxy/$1.$2'
},
// 7. Map server image directory to local image directory with regular expression
// This simple rule can replace multiple directories to corresponding locale ones
// For Example,
// http://host:port/ui/a/img/... => /home/a/image/...
// http://host:port/ui/b/img/... => /home/b/image/...
// http://host:port/ui/c/img/... => /home/c/image/...
// ...
{
pattern: /ui\/(.*)\/img\//,
responder: '/home/$1/image/'
}
];