详解Nuxt.js部署及踩过的坑


Posted in Javascript onAugust 07, 2018

Nuxt.js 提供了两种发布部署应用的方式:服务端渲染应用部署 和 静态应用部署。

静态应用部署就不说了,主要说说服务端渲染应用部署。

官方推荐部署方式

关于服务端渲染应用部署,官方文档是这么写的:

部署 Nuxt.js 服务端渲染的应用不能直接使用 nuxt 命令,而应该先进行编译构建,然后再启动 Nuxt 服务,可通过以下两个命令来完成:

nuxt build
nuxt start

推荐的 package.json 配置如下:

{
 "name": "my-app",
 "dependencies": {
  "nuxt": "latest"
 },
 "scripts": {
  "dev": "nuxt",
  "build": "nuxt build",
  "start": "nuxt start"
 }
}

提示: 建议将 .nuxt 加入 .npmignore 和 .gitignore 文件中。

意思是说.nuxt不加入到版本控制,每次服务器从gitlab上拉代码后先执行nuxt build生成.nuxt文件夹,然后再执行nuxt start来启动服务。

踩过的坑

部署方式很简单对不对,看完文档后我就在自己买的服务器上尝试部署一下,然后,BOOM!!!

每次在服务器上执行nuxt build,总是有如下报错,并且jenkins会随之挂掉。

error Command failed with signal "SIGKILL".

看了一下服务器监控发现build的时候cpu和内存飙升,尤其是内存。。。

好吧,我买的是阿里最低配的ECS,升级配置是最后的选择,在这之前只能另辟蹊径。

另辟蹊径

既然服务器上build不了,那我们就本地build再上传,在.gitignore里把.nuxt去掉、并把dist改为/dist,然后本地执行yarn build,成功之后再上传到github上,检查一下.nuxt是否有上传上去。

之后在服务器上把代码拉下来、安装一下依赖,执行nuxt start就可以了。

这里还有个坑,就是为什么要把.gitignore里的dist改为/dist?

/dist这个文件夹是执行nuxt generate后生成的,用来做静态应用部署的,这部分就跟通常情况下的.nuxt一样是不应该加入到版本控制里的,但由于nuxt build之后,在.nuxt里也会生成一个dist文件夹,我们希望gitignore的只有/dist而不是/.nuxt/dist,因此猜需要做出这里的修改。

nuxt部署

最后,我们使用pm2来部署nuxt。

pm2 start npm --name nuxt -- start

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 获取span标签中的值的代码 支持ie与firefox
Aug 24 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
Apr 05 Javascript
jquery实现手风琴效果
Nov 20 Javascript
基于javascript实现窗口抖动效果
Jan 03 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
Aug 03 Javascript
jquery实现全选、不选、反选的两种方法
Sep 06 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
Nov 09 Javascript
原生js实现拖拽功能基本思路详解
Apr 18 Javascript
angularJs中$http获取后台数据的实例讲解
Aug 08 Javascript
在vue中给列表中的奇数行添加class的实现方法
Sep 05 Javascript
在vue中使用echarts图表实例代码详解
Oct 22 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
解决vue 中 echart 在子组件中只显示一次的问题
Aug 07 #Javascript
Nuxt配合Node在实际生产中的应用详解
Aug 07 #Javascript
React-router4路由监听的实现
Aug 07 #Javascript
JavaScript设计模式之职责链模式应用示例
Aug 07 #Javascript
JavaScript使用享元模式实现文件上传优化操作示例
Aug 07 #Javascript
JavaScript设计模式之模板方法模式原理与用法示例
Aug 07 #Javascript
opencv 识别微信登录验证滑动块位置
Aug 07 #Javascript
You might like
Yii配置文件用法详解
2014/12/04 PHP
php实现简单的MVC框架实例
2015/09/23 PHP
简单谈谈PHP中的Reload操作
2016/12/12 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
针对PHP开发安全问题的相关总结
2019/03/22 PHP
php抽象类和接口知识点整理总结
2019/08/02 PHP
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
2014/12/16 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
Angular 2应用的8个主要构造块有哪些
2016/10/17 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
快速了解Vue父子组件传值以及父调子方法、子调父方法
2020/07/15 Javascript
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
浅谈Python黑帽子取代netcat
2018/02/10 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
浅析python3中的os.path.dirname(__file__)的使用
2018/08/30 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
python IDLE添加行号显示教程
2020/04/25 Python
Python绘制数码晶体管日期
2021/02/19 Python
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
实现向右循环移位
2014/07/31 面试题
《美丽的公鸡》教学反思
2014/02/25 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书