multipage-template
Webpack 多页面 & GitLab 增量构建部署模板
一、入口文件
每新建个独立的页面只需要在 pages 下面新建一个文件夹即可,但必须拥有两个入口文件 index.html、index.js。
├── package.json
└── src
├── index.js // pages 外部可以放一些通用的东西
└── pages
├── page1
│ ├── index.js
│ └── index.html
└── page2
├── style.css
├── index.js
└── index.html
二、出口
构建打包出来的页面结构互相独立。
├── package.json
└── dist
├── page1
│ ├── 7ffaa4103cae71b1629a.js
│ └── index.html
└── page2
├── 88870cd4b2e554c2a754.css
├── 88870cd4b2e554c2a754.js
└── index.html
三、增量部署
利用 GitLab 变量跑出有修改的 pages 文件夹,构建打包后使用阿里云 OSS 脚手架 aliyunoss-cli 自动上传到云端。
search_dir=src/pages
for path in "$search_dir"/*; do
echo "$(git diff HEAD~ --name-only | grep "$path")"
if [ "$(git diff HEAD~ --name-only | grep "$path/")" ]; then
page_name=$(basename $path)
echo "[CI] Page \"$page_name\" has been modified"
echo "[CI] Start building"
npx cross-env NODE_ENV=production PAGE=$page_name node build/build.js
fi
done