2difre-前端多工程协作环境配置
文章目录
问题: 原来要打包到项目环境,得修改多个源文件(
Gruntfile.js
,http.js
,config/dev.js
),常常引发冲突. 实际上需要修改的是这三个配置:
- 跳转地址
- api基础地址
- 资源地址
另一个蛋疼的事是为了各项目协作,需要配置不需要修改的项目(还得经常合并master),部署到本地和项目环境.
以下用相对路径(所有路径都使用相对路径,特别是引入/api
来表示api地址)来解决上述问题,操作步骤为以下两步
- 配置
nginx
分为本地开发环境和项目测试环境 - 项目修改
- 修改
Gruntfile.js
,http.js
,config/dev.js
- 修改
常见url说明
常见静态资源请求url
1
2http://api.l.whereask.com /invoice /meal /page/checkout.html
根地址 /变更分支 /工程名字 /资源地址
常见apiurl
1
2http://api.l.whereask.com /invoice /api /orders/v1/get_query_shop_tax
根地址 /变更分支 /api特殊名字 /资源地址
nginx配置
本地开发配置
使用如下配置
*
: 表示需要经常配置的部分
1 | server { |
可以实现
==>
: 表示最后指向地址
1. 将含变更分支
的url重写到本地webpack服务
或whereask变更环境
即实现根据变更分支
自动使用对应变更静态资源
如根据以下配置
1
2
3
4
5
6
7
8
9
10
11
12
13#开发地址部分,根据需要打开相应重写规则*
location /dev/ {
#1. `/daily/meal/` 经过 ``^~ /` 后为 `/dev/daily/meal/`
#2. 经过 `/dev/` 变为 `/dev/meal/`
#3. 同样shop是不匹配的,则 `/daily/shop/`重写为 `/whereask/daily/shop/`,使用whererask资源
#rewrite ^/dev/[^/]*/(shop/.*)$ /dev/$1 last;
#rewrite ^/dev/[^/]*/(bill/.*)$ /dev/$1 last;
#rewrite ^/dev/[^/]*/(marketing/.*)$ /dev/$1 last;
rewrite ^/dev/[^/]*/(meal/.*)$ /dev/$1 last;
#rewrite ^/dev/[^/]*/(om/.*)$ /dev/$1 last;
rewrite ^/dev/(.*)$ /whereask/$1 last;
}
可以将以下url重写到本地webpack服务
localhost:9981/invoice/meal
/page/checkout.html ==>localhost:8088
/page/checkout.htmllocalhost:9981/fire-one/meal
/page/checkout.html ==>localhost:8088
/page/checkout.htmllocalhost:9981/[任意变更分支]/meal
/page/checkout.html ==>localhost:8088
/page/checkout.html
将以下非meal
工程url反向代理到http://api.l.whereask.com/invoice/...
部分
localhost:9981
/invoice/om/page/om.html ==>api.l.whereask.com
/invoice/om/page/om.html
2. 将webpack热加载路径重写
localhost:9981
/webpack_hmr ==>localhost:8088
/webpack_hmr
3. 将api
url反向代理到http://api.l.whereask.com/变更分支/api/...
部分
即实现根据变更分支
自动使用对应变更api资源
localhost:9981
/invoice/api/orders/v1/get_query_shop_tax ==>api.l.whereask.com
/invoice/api/orders/v1/get_query_shop_tax
项目环境配置(10.1.7.159)
项目环境各分支作用说明
分支名称 | 作用 |
---|---|
daily | 日常环境,大家都可以上的车,代码从master中检出 |
dev_193 | 可以支付的分支 |
1 | # 工程默认使用daily代码 |
配置dev_193
如果需要dev_193使用invoice分支代码,可以如下修改dev_193配置
1 | location /dev_193/ { |
项目修改细节
static-meal, static-shop, static-om, static-bill, static-markting在项目中都需要做以下修改(只涉及到dev环境打包)
Gruntfile.js
删除dev
环境替换相对路径的配置
1 | { |
http.js
修改api基础地址为相对路径
1 | // var API_BASE_URL = 'http://api.l.whereask.com/server_from_meal'; |
config/dev.js
修改api基础地址为相对路径
1 | module.exports = { |
原文作者: 炒饭
原文链接: https://cytle.github.io/2017/02/18/2difre-前端多工程协作环境配置/
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议