这个项目最开始建立的是2016年的时候,如今已经过去了6年多,时光匆匆,如今 TS 已经流行起来,并且自己已经在 SSR 方面实践颇多,所以就花了半天的时间使用 Genesis 写了一个完整的 Vue SSR 的demo。
# 开发环境启动
npm run dev
# 打包生产环境代码
npm run build
# 执行TS类型检查
npm run type-check
# 生产环境运行
npm run start
执行./docker-build.sh
命令构建镜像,举一反三,具体编写逻辑请查看./docker-build.sh
和Dockerfile
文件
.
├── dist yarn build 编译后的源码目录
├── mock 模拟接口
│ └── mock.ts 实现登录、退出、微博列表的 mock api
├── src 源码目录
│ ├── components 公共组件
│ | └── v-header.vue 封装一个头部的组件
| ├── request 请求处理目录
| | └── index.ts 封装 axios 请求类的实现
| ├── router 路由管理目录
| | └── index.ts 提供创建路由的方法
| ├── store 状态管理目录
| | └── index.ts 程序全局状态的实现
| ├── utils 封装工具函数目录
| | └── index.ts 工具函数的封装
| ├── views 页面目录
| | ├── home.vue 网站首页
| | └── signin.vue 登录页面
| ├── app.vue 应用的公共组件
├── ├── index.html SSR 渲染的基本 html 模板
| ├── base-vue.ts 对 Vue 封装一封,包装 vuex、request
| ├── entry-client.ts 客户端入口文件
| ├── entry-server.ts 服务端入口文件
| └── shims-vue.d.ts Vue 文件的 TS 声明
├── .editorconfig 编辑器配置
├── .eslintignore eslint 的忽略配置
├── .eslintrc.js eslint 的配置
├── .gitignore git 的忽略文件
├── .stylelintignore stylelint 的忽略文件
├── build.sh 编译生产环境代码到 dist 目录,yarn start 执行
├── genesis.build.ts Genesis 构建生产环境代码
├── genesis.dev.ts dev 环境开发入口
├── genesis.prod.ts 生产环境开发入口
├── genesis.ts dev 和 生产环境,通用逻辑封装
├── package.json 包管理配置
├── README.md 项目说明文档
├── stylelint.config.js stylelint 的配置文件
├── tsconfig.json TS 的配置文件
├── tsconfig.node.json Node 运行程序使用 TS 的配置文件
└── yarn.lock yarn 的依赖版本锁