本仓库包括以下功能代码
- 模板代码 数据 维护 (新建,修改,归档)
- 活动页项目代码 数据 维护 (新建,修改,归档,发布)
- 公共代码 维护 lib : dll / vendor
- 公共组件维护 shard
- 以上功能脚手架 打包脚本 scripts
conf/project/xingguang.conf conf/ssl/xingguang.conf
指定位置添加映射规则 本地server配置
server {
listen 80;
server_name $STATIC_SERVER_NAME;
# ...
rewrite ^/vmaker/lib/(.*)/(.*)$ /vmaker/lib/dist/$2;
location ^~ /vmaker/lib/dist {
alias ${PROJECT_PATH}/lib/dist;
}
location ^~ /vmaker/mobile {
alias ${PROJECT_PATH}/dist/mobile/html/;
}
location ^~ /vmaker/pc {
alias ${PROJECT_PATH}/dist/pc/html/;
}
# ...
}
server {
listen 80;
server_name $MOBILE_SERVER_NAME;
# ...
# vmaker
location ^~ /dist/vmaker/ {
root ${PROJECT_PATH}/dist/mobile/html/;
}
# ...
}
server {
listen 80;
server_name $PC_SERVER_NAME;
# vmaker
location ^~ /vmaker/ {
root ${PROJECT_PATH}/dist/pc/html/;
}
}
新建模板 - (自动新建分支)
npm run new:tpl
新建活动页 - (自动新建分支)
npm run new:page
模板/活动页 本地开发 (开发无需区分 模板/活动页 区别)
npm run dev
活动页 构建 (模板无构建流程)
npm run build
发布活动页 (test / trunk 都为该命令)
npm run pub:page
模板/活动页 归档 - (自动merge master)
npm run archive # 活动页 (生命周期结束后归档)
npm run archive:tpl # 模板 (模板开发完成后归档)
模板/活动页 从归档中恢复
npm run recover # 已有归档活动修改
npm run recover:tpl # 模板逻辑修改 (! 注意: 一般不存在模板修改,如果主逻辑有变动,应新建一个模板版本,而不是修改已有版本 )
模板 从归档新建
npm run builtin
dll vendor 需要版本管理 (即同时存在多个版本多个功能。请在CHANGELOG.md中进行标注。)
请切换至 lib 分支进行 dll vendor 模块的代码维护。修改发布完成后,应merge至主版本。(并同步至各个待发布的page分支)
lib 目录 代码分支的归档操作 需要手动执行! 并手动确认其正确性。
src引用dll vendor并不是直接引用lib目录下文件,而是通过版本号和测试/线上环境建立关系。所以当lib中找不到对应方法时,应去对应lib分支下查找。后续会通过@types建立关系。
git pull
git checkout lib_v1
开发
npm run dev:lib
构建 (test / trunk 都为该命令)
npm run build:lib
发布 (test / trunk 都为该命令)
npm run pub:lib
如脚本修改 其他功能模块 全局组件添加 可直接新建feature分支进行开发
- lib (dll vendor源码)
- packages (外部包 = 相当于内嵌的node_modules)
- page (活动页面项目归档)
- scripts (脚本)
- shared (公共组件 函数库)
- src (当前模板/页面项目 源码)
- templates (模板归档)
- test (测试用例)
可分为两个类型:
- 需求复用:如定制活动v1/v2。
- 定制化开发模板:如图片页,常用榜单页。可作为开发基础。
主要观察是否有可分离性。若每次都需要小部分修改,可以建一个基础版本,在src内部复制一份,作为修改。 若每次功能相同,可以直接引入shared中的代码;
目前各个版本的各个输出 都没有 map文件输出。后续可以添加。
分为四类:
- pure打包,即不引用任何外部 dll vendor
- pc打包,引入dll.web.js vendor.web.js
- mobile打包,引入dll.mobile.js vendor.mobile.js
- PC & Mobile打包。
lib/version.json 记录了 lib 相关版本号信息。如果不同步发布,可能存在信息延迟,导致覆盖别人发布的版本。
因为重复名的检测基于 pages/pages.json templates/templates.json 两个文件记录。如果数据没有同步,如存在两个git本地仓库的同名分支,可能会存在归档覆盖问题。若出现此情况,可以npm run recover恢复后分支,git reset恢复到覆盖版本后 重命名分支项目 后再归档。(可通过先在测试、线上环境访问对应文件,避免新建后覆盖)