前端项目开发:代理和打包

FE Project, Proxy, Building

Posted by markzhang on March 14, 2019

在项目开发过程中,我们一般是在本地书写js代码,待到书写完毕之后进行打包然后放到测试环境中运行。当我们想要修复和验证一个bug的时候,我们又需要在本地修改代码打包然后放到测试环境运行,观察效果。

这样每次打包上传很麻烦。那有没有办法不用上传即可看到效果呢?

有……我们可以使用Fiddler、Charles等代理软件,将测试环境中的文件和本地文件作映射,这样测试环境中跑的代码就是本地编写的代码,这样就不需要上传了,等调试好之后再上传。

但是……感觉用软件代理的方式不是很科学,有时候还会莫名其妙的代理失败。于是在开发项目中我们通过启动两个服务来解决这个问题。如标题所言,一个是代理服务,一个是打包服务。

我们通过修改测试环境静态资源host为127.0.0.1即指向本地启动的server,然后在server中间件中对于请求路径进行监听;对于比如js的请求,使用http-proxy-middleware中间件,将其转到打包服务,向webpack打包服务请求对应的js,即本地的js文件;这样就在每次本地保存代码,动态打包完毕之后,刷新浏览器即可看到最新的效果。

接下来会分两篇文章,分别对代理服务和打包服务结合代码进行分析。