详解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 相关文章推荐
JavaScript 匿名函数(anonymous function)与闭包(closure)
Oct 04 Javascript
c#和Javascript操作同一json对象的实现代码
Jan 17 Javascript
浅析JavaScript中的CSS属性及命名规范
Nov 28 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
js图片模糊切换显示特效的方法
Feb 17 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
Oct 08 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
Jul 28 Javascript
AngularJS实现页面跳转后自动弹出对话框实例代码
Aug 02 Javascript
详解Vue.js中.native修饰符
Apr 24 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
Aug 14 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
Mar 14 Javascript
Vue实现浏览器打印功能的代码
Apr 17 Javascript
解决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
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
node和vue实现商城用户地址模块
2018/12/05 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
在Linux下调试Python代码的各种方法
2015/04/17 Python
Python类的用法实例浅析
2015/05/27 Python
Python制作爬虫采集小说
2015/10/25 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
win10下python2和python3共存问题解决方法
2019/12/23 Python
最小二乘法及其python实现详解
2020/02/24 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
英国二手物品交易网站:Preloved
2017/10/06 全球购物
大学生入党自我鉴定
2013/10/31 职场文书
爱情保证书范文
2014/02/01 职场文书
中国好声音广告词
2014/03/18 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
Vue elementUI表单嵌套表格并对每行进行校验详解
2022/02/18 Vue.js