开发指南

Mereith2022年8月16日大约 2 分钟

提示

本项目处于初始阶段,如有 bug 请多担待。

本项目使用了 JavaScriptTypeScript 实现。

如果你想参与 VanBlog 开发,可以进群哦:

路径结构

├── docker-compose  # docker-compose 编排
├── Dockerfile  # Dockerfile
├── docs # 项目文档的代码
├── entrypoint.sh # 容器入口文件
├── lerna.json # lerna 配置
├── LICENSE # 开源协议
├── package.json
├── packages # 代码主体
 |  ├── admin # 后台前端代码
 |  ├── server # 后端代码
 |  ├── waline # 内嵌 waline 评论系统
 |  └── website # 前台前端代码
├── README.md
└── yarn.lock

技术栈

只列出大体上框架级别的,一些细节就直接看代码吧。

前台: next.jsopen in new windowreact.jsopen in new windowtailwind-cssopen in new window

后台: ant design proopen in new windowant designopen in new window

后端: nest.jsopen in new windowmongoDBopen in new window

CI: dockeropen in new windownginxopen in new windowgithub-actionsopen in new window

文档: vue-pressopen in new windowvue-press-hopeopen in new window

前台开发

现在前台的启动改为嵌入到后端的 child_process 中了,所以默认无需单独启动前台!启动后端就会启动前台 next.js 的 dev 模式

后台开发

采用 ant deign pro

cd packages/admin
yarn
yarn start

端口号为: 3002,浏览器打开即可。

与后台的跨域代理已经做好了,浏览器打开即可。

后端开发

采用 nestjs 框架构建。

cd packages/server
yarn
yarn start:dev

端口号为: 3000

swagger 路径为: /swagger

默认的数据库是本地的 mongo,如果你需要修改,可以在本目录(packages/server)下新建config.yaml

database:
  url: mongodb://somemongo:27017/vanBlog?authSource=admin
# 配置静态图床的文件夹
static:
  path: /code/github/van-blog/staticFolder
waline:
  db: walineDev

文档开发

yarn docs:dev

端口号为: 8080

镜像构建

根目录直接打包就行。

act

我一般会用 actopen in new window 来做验证镜像,act 可以在本地运行 Github Actions

安装 act 后:

yarn build:test

手动打包

# 这个build server 是第一次打包镜像拿数据的,不写也行,那就得等启动容器后增量渲染生效了。
VAN_BLOG_BUILD_SERVER="https://some.vanblog-server.com"
docker build --build-arg VAN_BLOG_BUILD_SERVER=$VAN_BLOG_BUILD_SERVER -t mereith/van-blog:test .

文档发版

已经有了对应的 github actions,向远端推送 doc*tag 会触发然后发布到项目官方。

另外有一键脚本可以在发版之后自动拷贝 changelog 并发布:

yarn release-doc

Release

本项目使用 standard-versionopen in new window 管理版本,并有了对应的 github actions,执行下列命令会发布版本并触发流水线打包发版。

yarn release
git push --follow-tags origin master
Loading...