news 2026/8/24 8:32:47

kov-blog生产环境部署指南:npm打包、private.js私有配置与pm2进程管理完整教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
kov-blog生产环境部署指南:npm打包、private.js私有配置与pm2进程管理完整教程

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 由三个模块组成,各自独立打包:

目录角色部署产物
serverKoa 后台服务,提供 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 抽离为独立文件;
  • CommonsChunkPluginnode_modules中的第三方库拆成vendor包,避免每次发版 vendor 哈希变化。

关键点在于 client/config/index.js 中assetsPublicPath: './',意味着产物采用相对路径引用资源,你可以把dist目录随意放到 Nginx 任意站点目录下,无需修改配置。

💡 建议将client/distadmin/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

部署完成后的上线验证清单

按顺序核对,全部通过即部署成功 ✅:

  1. 接口探活curl http://127.0.0.1:3000/api能返回响应(不再 ECONNREFUSED);
  2. 前台可访问:浏览器打开 Nginx 指向的client/dist,能看到博客文章列表;
  3. 后台可登录:打开admin/dist,使用初始账号admin / password登录,登录后第一件事是修改密码
  4. 进程守护pm2 listkov-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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 8:32:20

多智能体LLM系统分布式后门威胁:早期检测与防御实践

1. 项目概述:多智能体LLM系统中的分布式后门威胁最近在跟进几个大型语言模型(LLM)多智能体协作的项目时,一个之前被我们或多或少忽略的问题,开始频繁地浮出水面:安全。尤其是在智能体数量增多、交互复杂、任…

作者头像 李华
网站建设 2026/8/24 8:28:54

FreeCAD 插件系统:三步快速搭好你的定制 3D 建模环境

FreeCAD 插件系统:三步快速搭好你的定制 3D 建模环境 【免费下载链接】FreeCAD Official source code of FreeCAD, a free and opensource multiplatform 3D parametric modeler. 项目地址: https://gitcode.com/GitHub_Trending/fr/FreeCAD 本文基于 FreeCA…

作者头像 李华
网站建设 2026/8/24 8:28:53

Messier:高分辨率AI智能体评测集,实现跨基准细粒度能力评估

1. 项目概述:为什么我们需要一个“高分辨率”的智能体评测集?如果你最近在关注AI智能体(Agent)领域,尤其是大模型驱动的自主智能体,你肯定被各种评测榜单和基准测试搞得眼花缭乱。从简单的工具调用到复杂的…

作者头像 李华
网站建设 2026/8/24 8:25:10

AI Agent群体智能:从多智能体系统到同伴学习的技术演进

1. 从“单机”到“社群”:AI Agent交互模式的范式转移最近在跟进AI Agent领域的发展时,我注意到一个非常有趣的现象。过去一年,我们讨论AI Agent,焦点往往集中在单个Agent的能力边界上:它的任务拆解能力如何、工具调用…

作者头像 李华
网站建设 2026/8/24 8:24:05

编写你的图片适配器:扩展responsive-loader的完整开发者指南

编写你的图片适配器:扩展responsive-loader的完整开发者指南 【免费下载链接】responsive-loader A webpack loader for responsive images 项目地址: https://gitcode.com/gh_mirrors/re/responsive-loader responsive-loader 是一个专为 webpack 打造的响应…

作者头像 李华