相关文章推荐
爱旅游的椅子  ·  Postman发送JSON格式的post请求 ...·  2 月前    · 
傻傻的针织衫  ·  Java ...·  2 月前    · 
宽容的水桶  ·  Java的OOM问题及解决方案-阿里云开发者社区·  2 月前    · 
冷冷的电影票  ·  如何从java的时区ID中获取国家代码?开发者社区·  1 月前    · 
瘦瘦的海豚  ·  嵌套数组和map的json文件如何解析?开发者社区·  1 月前    · 
要出家的足球  ·  力扣每日一题2023.7.14在二叉树中分配 ...·  8 月前    · 
坚韧的闹钟  ·  陌生人进入磁力链(罔)hk589.net(罔 ...·  9 月前    · 
想旅行的香烟  ·  嘉定这些村宅名背后的历史与故事,你知道吗?·  10 月前    · 
爱看书的竹笋  ·  吴莎:和光同尘,与时舒卷-湖南师范大学网站·  1 年前    · 
安静的松树  ·  Chapter 7. JanusGraph ...·  1 年前    · 
Code  ›  【玩转】让NuxtSSR在云函数中飞起来开发者社区
config 云计算
https://cloud.tencent.com/developer/article/1618489
寂寞的绿豆
1 年前
作者头像
XaDon
0 篇文章

【玩转腾讯云】让NuxtSSR在云函数中飞起来

原创
前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > Xudon的云开发吖 > 【玩转腾讯云】让NuxtSSR在云函数中飞起来

【玩转腾讯云】让NuxtSSR在云函数中飞起来

原创
作者头像
XaDon
修改 于 2020-04-22 14:57:02
1.2K 0
修改 于 2020-04-22 14:57:02
举报

我们以往部署 Nuxt 到服务器需要pm2进行进程管理,还需要考虑到服务器的性能,负载均衡、网络安全等一系列运维问题。往往我们做的却不是最优的,那么为什么我们不将它交给专业运维的人去配置呢?

我们只去关心应用层面的业务逻辑,去关心用户的交互体验,这才是我们该做的事~

所以, 云开发 它来了!!它可以很完美的帮我们解决以上的问题,提升我们的开发效率,将所有精力放在业务逻辑以及用户的交互上。

那如何在云开发中让我的Nuxt的SSR跑起来呢 往下看👇

开发需求

node.js环境

我们需要用到npm以及云函数是基于 node.js -v8.9 所以node.js必不可少~

create-nuxt-app

用到 create-nuxt-app 来创建一个nuxt项目

安装: npm i create-nuxt-app -g

@cloudbase/cli

用来进行快速、方便的部署项目,管理云开发资源。

安装: npm i @cloudbase/cli -g

构建云开发项目

首先进行登录授权 tcb login ,在弹出的窗口进行授权👇

新建一个 云环境 👇

在弹出窗口新建,我们选择 按量计费 并将 开启免费资源 选项勾上

注:每个账户只能创建一个开启免费资源的云环境

点击立即开通后,云环境会自动进行初始化。(过程大概持续2-3分钟)耐心等待即可~

待我们初始化完成后,使用命令 tcb init 选择进行关联的云环境

$ tcb init
√ 选择关联环境 · nuxt - [nuxt-1a3208:空] 
√ 请输入项目名称 · nuxtSSR
√ 选择开发语言 · Node 
√ 选择云开发模板 · Hello World
√ 创建项目 nuxtSSR 成功!

创建完成后我们使用命令 tcb env:list 来查看云环境信息,并将云环境ID复制下来~

我们进入到云开发项目目录nuxt中

此时的目录结构是这样的👇

.        
├── functions // 云函数目录
├── .editorconfig 
├── .gitignore 
├── cloudbaserc.js // 项目配置文件 
└── README.md

在cloudbaserc.js中将envID改成自己的云环境ID

我们进入到functions中来新建一个云函数,在functions中一个文件夹为一个 云函数 。

cd functions

接下来我们就在 functions 下构建nuxt项目喽~

构建Nuxt项目

创建一个项目

npx create-nuxt-app nuxt

安装node的时候会自动安装npm 而在npm5.2.0之后又会自动加入npx 所以这个命令不必单独安装

$ npx create-nuxt-app nuxt
create-nuxt-app v2.15.0
✨  Generating Nuxt.js project in nuxt
? Project name nuxt # 项目的名称
? Project description My badass Nuxt.js project # 项目的描述
? Author name dxd   # 作者的名字
? Choose programming language JavaScript # 选择程序语言 我们选择JavaScript
? Choose the package manager Npm  # 选择包管理工具  我们选择npm
? Choose UI framework None # 选择UI框架 因为本次演示没有用到,所以选择none
? Choose custom server framework None (Recommended) # Server框架,同上
? Choose Nuxt.js modules (Press <space> to select, <a> to toggle all, <i> to invert selection) # 选择模块
? Choose linting tools (Press <space> to select, <a> to toggle all, <i> to invert selection)  # 选择JS检查工具
? Choose test framework None # 选择测试框架
? Choose rendering mode Universal (SSR) # 是否开启SSR服务端渲染,选择Universal开启
? Choose development tools (Press <space> to select, <a> to toggle all, <i> to invert selection)

创建成功后的样子子👇

到此 我们就新建了一个名为nuxt的 云函数 ~

那么函数的入口文件在哪呢?

我们需要为他新建一个index.js的入口文件。

并在其中写入

//index.js
const {Nuxt} = require('nuxt')
const serverless = require('serverless-http')
let config = require('./nuxt.config.js')
const nuxt = new Nuxt(config)
exports.main = async (...args) => {
  console.log(config.dev)
  await nuxt.ready();
  return serverless((req,res) => {
        nuxt.render(req,res)
  })(...args)
}

上述代码中,我们用到了 serverless-http ,所以我们来安装它~

安装: npm i serverless-http --save

配置项目

我们在nuxt.config.js中加入 dev:false

否则部署云函数后会报下面错误👇~

{
"errorCode":1,
"errorMessage":"user code exception caught",
"stackTrace":"EROFS: read-only file system, rmdir '/var/user/.nuxt'\n
 
推荐文章
爱旅游的椅子  ·  Postman发送JSON格式的post请求开发者社区
2 月前
傻傻的针织衫  ·  Java sdk连接fabric网络的谜之报错-阿里云开发者社区
2 月前
宽容的水桶  ·  Java的OOM问题及解决方案-阿里云开发者社区
2 月前
冷冷的电影票  ·  如何从java的时区ID中获取国家代码?开发者社区
1 月前
瘦瘦的海豚  ·  嵌套数组和map的json文件如何解析?开发者社区
1 月前
要出家的足球  ·  力扣每日一题2023.7.14在二叉树中分配硬币_一棵二叉树,每个节点上有硬币,每次可以移动一枚硬币移动一个位置,问给一个二叉树,-CSDN博客
8 月前
坚韧的闹钟  ·  陌生人进入磁力链(罔)hk589.net(罔)【迷走都市1-3ps免费图】【海德下载地】陌 - 百度
9 月前
想旅行的香烟  ·  嘉定这些村宅名背后的历史与故事,你知道吗?
10 月前
爱看书的竹笋  ·  吴莎:和光同尘,与时舒卷-湖南师范大学网站
1 年前
安静的松树  ·  Chapter 7. JanusGraph Server - 简书
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号