kov-blog生产环境部署指南:npm打包、private.js私有配置与pm2进程管理完整教程
【免费下载链接】kov-blogA blog platform built with koa,vue and mongoose. 使用 koa ,vue 和 mongo 搭建的博客页面和支持markdown语法的博客编写平台,自动保存草稿。博客地址:https://chuckliu.me项目地址: https://gitcode.com/gh_mirrors/ko/kov-blog
kov-blog是一个基于 Vue + Koa + MongoDB 前后端分离的开源博客平台,支持 Markdown 编写与草稿自动保存。本文手把手带你完成 kov-blog 生产环境部署:从 npm 打包前端静态文件,到配置 private.js 私有化参数,再到用 pm2 做进程守护,三步走通上线全流程 🚀
部署前准备:Node 与 MongoDB 环境一键检查
kov-blog 使用了大量 ES6/ES7 新语法,请务必安装 Node.js 6.0 及以上版本,并提前装好 MongoDB(数据库默认连接mongodb://localhost:27017/kov-blog)。
环境确认命令:
node -v # 需要 6.x 以上 mongod --version然后克隆代码仓库:
git clone https://gitcode.com/gh_mirrors/ko/kov-blog.git cd kov-blog npm install依赖安装只需在项目根目录执行一次,三个子项目共用根目录的
node_modules(统一由根 package.json 声明)。
认识项目结构:三个子项目如何分工
kov-blog 由三个模块组成,各自独立打包:
| 目录 | 角色 | 部署产物 |
|---|---|---|
server | Koa 后台服务,提供 RESTful 接口 | 不打包,Node 直接运行 |
client | 博客前台展示页面(Vue) | 打包为client/dist静态文件 |
admin | 博客管理后台(Markdown 编辑器) | 打包为admin/dist静态文件 |
最快打包方法:npm run build 命令一次生成静态文件
根目录的 package.json 中定义了两条打包脚本,分别在根目录执行:
npm run build-client # 打包博客前台 → client/dist/ npm run build-admin # 打包管理后台 → admin/dist/打包配置见 client/build/webpack.prod.conf.js,其中做了三件生产优化:
- UglifyJsPlugin压缩混淆 JS;
- ExtractTextPlugin将 CSS 抽离为独立文件;
- CommonsChunkPlugin把
node_modules中的第三方库拆成vendor包,避免每次发版 vendor 哈希变化。
关键点在于 client/config/index.js 中assetsPublicPath: './',意味着产物采用相对路径引用资源,你可以把dist目录随意放到 Nginx 任意站点目录下,无需修改配置。
💡 建议将
client/dist与admin/dist放到 Nginx 托管,并把/api前缀的请求反向代理到 Kov 服务的 3000 端口(接口前缀由config.app.adminPath决定)。
private.js 私有配置:生产环境参数覆盖的正确姿势
生产环境不要直接修改server/configs/index.js的默认值。查看 server/configs/index.js#L44-L49 的逻辑:
// 私有配置 if(process.env.NODE_ENV === 'production'){ if(fs.existsSync(__dirname+'/private.js'){ config = _.merge(config, require('./private.js')); } }只有在NODE_ENV=production(默认就是生产模式)且server/configs/private.js存在时,才会用 lodash 的 merge浅层合并覆盖默认配置。因此你只需创建server/configs/private.js,例如:
module.exports = { app: { port: 8989 // 修改监听端口 }, mongoConfig: { url: 'mongodb://user:pass@127.0.0.1:27017/kov-blog', // 修改数据库地址 opts: { user: 'user', pass: 'pass' } }, jwt: { cert: 'my-own-secret-key' // 务必修改 JWT 密钥,保证线上安全 } };三个最常被覆盖的项:端口、Mongo 地址与账号密码、JWT 密钥(默认值kov-blog太弱,一定要改)。改完配置后,重启进程即可生效。
pm2 进程管理:开机自启与崩溃自动重启
pm2已作为 devDependencies 声明在根 package.json 中,安装依赖后即可使用。后台服务入口是 server/index.js,用 pm2 拉起:
pm2 start server/index.js --name kov-blog常用运维命令一览:
pm2 list # 查看进程状态 pm2 logs kov-blog # 查看实时日志 pm2 restart kov-blog # 重启服务 pm2 save && pm2 startup # 保存进程列表并配置开机自启⚠️ 注意:不要用开发脚本
npm run dev-server(它带 supervisor 热重载,仅适合本地调试),生产环境一律走 pm2 直启server/index.js。
部署完成后的上线验证清单
按顺序核对,全部通过即部署成功 ✅:
- 接口探活:
curl http://127.0.0.1:3000/api能返回响应(不再 ECONNREFUSED); - 前台可访问:浏览器打开 Nginx 指向的
client/dist,能看到博客文章列表; - 后台可登录:打开
admin/dist,使用初始账号admin / password登录,登录后第一件事是修改密码; - 进程守护:
pm2 list中kov-blog状态为online。
到这里,npm 打包、private.js 私有配置与 pm2 进程管理三步已全部完成,你的 kov-blog 博客平台已正式投入生产运行。后续如需升级,重复"改代码 → 重新 build →pm2 restart kov-blog"即可快速发版。
【免费下载链接】kov-blogA blog platform built with koa,vue and mongoose. 使用 koa ,vue 和 mongo 搭建的博客页面和支持markdown语法的博客编写平台,自动保存草稿。博客地址:https://chuckliu.me项目地址: https://gitcode.com/gh_mirrors/ko/kov-blog
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考