Vue+Koa2 打包后进行线上部署的教程详解


Posted in Javascript onJuly 31, 2019

最近使用Vue和Koa2重构了自己的博客,过程中踩了不少坑,查了很多资料,最后总算成功上线。之后我计划围绕这个过程写一系列文章,讲讲如何用Vue+Koa2写一套网站。

而现在,先来讲讲最后一步,在写完Vue和Koa2后,如何将它们部署到线上。

1.将Vue和Koa2结合

很多人在打完包后就不知道怎么做了,毕竟后面都是后端的事情。如果你用的是Vue-cli3.0,那么打包这一步会非常简单,只需要执行一条命令即可,其它的不用关心:

npm run build

之后会生成一个dist的文件夹,将它放到Koa2目录下的public文件里,然后在Koa2的配置文件app.js里将静态资源指向这个文件夹,指向命令在我们创建Koa2框架时就已经自动生成,所以我们要做的也只是改一下文件地址就行了:

app.use(require('koa-static')(__dirname + '/public/dist'))

改好之后打开koa2的主页,看看是否加载成功,第一步就愉快地完成了。

2.Nginx配置

现在登录服务器,安装完Nginx后,在`/etc/nginx/sites-enabled/`下新建一个conf文件,然后写入配置:

//Koa的端口一般默认是3000
upstream koa.server{
  server 127.0.0.1:3000;
}

server {
  listen   80;
  server_name .******.com;

  location / {
    proxy_pass http://koa.server;
    proxy_redirect off;
  }
}

写完之后重启Nginx:

sudo /etc/init.d/nginx restart

接着将Koa2文件上传到服务器,启动后在浏览器里输入你的网址或者服务器ip,能访问到就大功告成了。

当然,这套Nginx配置还是非常简陋,如果希望长期稳定运行的话还得加入SSL和Gzip,网上资料很多,如果以后有机会的话我也会讲一下。

3.使用Pm2进行进程管理

能成功访问后接着就是将Koa放到后台运行,这里使用了Pm2进行管理,先来安装:

npm install -g pm2

安装好后在Koa目录下创建一个文件 “pm2.conf.json”,然后输入以下代码:

{
  "apps":{
    "name":"blog",
    "script": "bin/www",
    "watch": true,
    "ignore_watch":[
      "node_modules",
      "logs"
    ],
    "instances":2,
    "error_file":"logs/err.log",
    "out_file":"logs/out.log",
    "log_date_format": "YYYY-MM-DD HH:mm:ss"
  }
}

来重点说下两个参数,watch和instances。

Watch是检测到文件有改动会自动重启加载,ignore_watch则是排除不需要监控的文件。

Instances则是开启实例数,建议根据cpu核数进行配置,有多少核就开启多少条。

最后启动:

pm2 start pm2.conf.json

到这里,网站就部署完成了!

总结

以上所述是小编给大家介绍的Vue+Koa2 打包后进行线上部署的教程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
jQuery实现form表单reset按钮重置清空表单功能
Dec 18 Javascript
IE与FireFox的JavaScript兼容问题解决办法
Dec 31 Javascript
使用mouse事件实现简单的鼠标经过特效
Jan 30 Javascript
在JavaScript中正确引用bind方法的应用
May 11 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
Jan 26 Javascript
纯JS代码实现气泡效果
May 04 Javascript
浅谈jQuery中事情的动态绑定
Feb 12 Javascript
js实现无缝滚动图
Feb 22 Javascript
解决修复npm安装全局模块权限的问题
May 17 Javascript
layer.js之回调销毁对话框的例子
Sep 11 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
Aug 03 Javascript
插件导致ECharts被全量引入的坑示例解析
Sep 23 Javascript
简述vue-cli中chainWebpack的使用方法
Jul 30 #Javascript
vue实现中部导航栏布局功能
Jul 30 #Javascript
js定义类的方法示例【ES5与ES6】
Jul 30 #Javascript
Javascript 对象(object)合并操作实例分析
Jul 30 #Javascript
JavaScript跳出循环的三种方法(break, return, continue)
Jul 30 #Javascript
8个有意思的JavaScript面试题
Jul 30 #Javascript
开源一个微信小程序仪表盘组件过程解析
Jul 30 #Javascript
You might like
社区(php&&mysql)六
2006/10/09 PHP
Smarty模板快速入门
2007/01/04 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
PHP文件与目录操作示例
2016/12/24 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
js 覆盖和重载 函数
2009/09/25 Javascript
jquery 卷帘效果实现代码(不同方向)
2013/02/05 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
鼠标滚轴控制文本框值的JS代码
2013/11/19 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
2015/06/19 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
2015/12/04 Javascript
实例详解JSON数据格式及json格式数据域字符串相互转换
2016/01/07 Javascript
简单的分页代码js实现
2016/05/17 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
JavaScript动态生成表格的示例
2020/11/02 Javascript
Python的SQLAlchemy框架使用入门
2015/04/29 Python
python密码错误三次锁定(实例讲解)
2017/11/14 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
SEPHORA新西兰官方网站:购买化妆品和护肤品
2016/12/02 全球购物
人力资源管理专业自荐信
2014/06/24 职场文书
元旦趣味活动方案
2014/08/22 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python