BlueXIII's Blog

热爱技术,持续学习

0%

研发工具-HMR代理配置

简介

使用公司框架开发时,在HMR开发模式,前端如果使用自已封装的HttpClient,无法调用@delon/mock。

如果省略mock,直接与后端API一起联调,则需要将页面打进后端war包中,在Tomcat中测试。由于无法使用HMR,每次页面改动都要刷新页面,浪费一些时间。

通过配置HMR代理,可以将后端Tomcat 9090端口下的服务,代理到HMR 4200端口下,提升前端开发效率。

service模块配置

临时将/api/*添加到CAS例外

1
2
3
4
5
6
7
   <!-- begin CAS ignorePattern -->
<context-param>
<param-name>ignorePattern</param-name>
<param-value>
/api/*|.*.js|/assets/.*|.*.menu.*|/publicConfig/.*|.*./user/.*|.*.assets/i18n/[a-z]{2}\.json
</param-value>
</context-param>

临时将/api/*添加到JWT例外

1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- begin JWT ValidationWithoutCas Filter -->
<filter>
<filter-name>JWT ValidationWithoutCas Filter</filter-name>
<filter-class>
com.yourcompany.common.authentication.filter.JwtValidationFilter
</filter-class>
<init-param>
<param-name>ignorePattern</param-name>
<param-value>
.*/cale/api/.*,.*.assets.*,.*.publicConfig.*,.*.css,.*.js,.*.html,.*.htm,.*.json,.*.svg,.*.cale/;jsessionid=.*,.*.cale/,.*.png,.*.login/user.*,.*.login/logout.*
</param-value>
</init-param>
</filter>

注意仅在本地修改,不要提交到git上

web模块配置

新建proxy.conf.json

1
2
3
4
5
6
7
{
"/api": {
"target": "http://10.30.22.xx:9090/cale",
"secure": false,
"logLevel": "debug"
}
}

注意target中的ip地址不要填写localhsot或127.0.0.1,否则可能无法正确转发
映射关系为: http://localhost:4200/api/attachment -> http://10.30.22.242:9090/cale/api/attachment

修改package.json

1
2
3
"scripts": {
"hmr": "ng serve -c=hmr --proxy-config=proxy.conf.json"
},

启动前端

1
npm run hmr