Web代理工具NProxy

不需要使用Fiddler Charles拦截http请求了,我们可以使用前端调试利器NProxy。只需要一个npm包,加上一个配置文件,并且支持全平台。

官网http://goddyzhao.me/nproxy/

安装

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了。

代理本地到远程和代理远程到本地

  1. 将本地api映射到服务器上 这个功能现在webpack-dev-server也有这个功能了
  2. 用本地文件代理线上文件
    {
    pattern: 'homepage.css',
    responder: '/path/to/homepage.js'

    }

  3. 替换线上一个目录下的所有文件

模板文件

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/'
  }
];
posted @ 2017-10-28 09:45  弗朗西斯科  阅读(1806)  评论(0编辑  收藏  举报