腾讯云 Nuxt.js 组件通过使用 Tencent Serverless Framework,基于云上 Serverless 服务(如 API 网关、云函数等),实现“0”配置,便捷开发,极速部署采用 Nuxt.js 框架的网页应用,Nuxt.js 组件支持丰富的配置扩展,提供了目前便捷实用、开发成本低的网页应用项目的开发/托管能力。
特性介绍:
通过 Serverless Framework Nuxt.js 组件,可以快速实现 Next.js 传统应用从本地到 Serverless 函数平台的迁移。
说明:如果您的账号为腾讯云子账号,请首先联系主账号,参考 账号和权限配置 进行授权。
Nuxt.js 组件将在腾讯云账号中使用到如下 Serverless 服务:
说明:以下步骤主要针对命令行部署操作,控制台部署请参考 控制台部署指南。
如果您本地并没有 Nuxt.js 项目,可通过以下指令快速新建一个 Nuxt.js 项目模版(本地已有项目可跳过该步骤):
serverless init nuxtjs-starter --name example
cd example
如果项目使用了自定义 Node.js 服务,例如 Express 或者 Koa 框架,您需要对入口文件 sls.js(或 app.js)做出改造,导出对应框架 app(未使用可跳过该步骤), 点此查看 改造模版。
npm run build
完成代码修改后,通过执行 sls deploy
指令,Serverless Framework 会自动帮您生成基本的 serverless.yml
文件,并完成部署,实现 Nuxt.js 框架应用的快速迁移。
生成的默认配置文件如下:
component: nuxtjs
name: nuxtjsDemo
app: appDemo
inputs:
src: ./
exclude:
- .env
region: ap-guangzhou
runtime: Nodejs10.15
apigatewayConf:
protocols:
- http
- https
environment: release
部署完成后,通过访问输出的 API 网关链接,完成对应用的访问。
在serverless.yml
文件所在的目录下,通过如下命令查看部署状态:
$ serverless info
const express = require('express')
const { loadNuxt } = require('nuxt')
async function createServer() {
// not report route for custom monitor
const noReportRoutes = ['/_nuxt', '/static', '/favicon.ico']
const server = express()
const nuxt = await loadNuxt('start')
server.all('*', (req, res, next) => {
noReportRoutes.forEach((route) => {
if (req.path.indexOf(route) === 0) {
req.__SLS_NO_REPORT__ = true
}
})
return nuxt.render(req, res, next)
})
// define binary type for response
// if includes, will return base64 encoded, very useful for images
server.binaryTypes = ['*/*']
return server
}
module.exports = createServer
const Koa = require('koa')
const { loadNuxt } = require('nuxt')
async function createServer() {
const server = new Koa()
const nuxt = await loadNuxt('start')
server.use((ctx) => {
ctx.status = 200
ctx.respond = false
ctx.req.ctx = ctx
nuxt.render(ctx.req, ctx.res)
})
// define binary type for response
// if includes, will return base64 encoded, very useful for images
server.binaryTypes = ['*/*']
return server
}
module.exports = createServer
说明:目前仅支持自定义 Express 服务的项目。
当在部署 Nuxt.js 应用时,如果 serverless.yml
中未指定 role
,默认会尝试绑定 QCS_SCFExcuteRole
,并且开启自定义监控,帮助用户收集应用监控指标。对于为自定义入口文件的项目,会默认上报除含有 /_nuxt
、/static
和 /favicon.ico
的路由。
如果您想自定义上报自己的路由性能,那么可以自定义 sls.js
入口文件,对于无需上报的路由,在 express 服务的 req
对象上添加 __SLS_NO_REPORT__
属性值为 true
即可。例如:
server.get('/no-report', (req, res, next) => {
req.__SLS_NO_REPORT__ = true
return nuxt.render(req, res, next)
})
那么用户在访问 GET /no-report
路由时,就不会上报自定义监控指标。
当前默认支持 CLI 扫描二维码登录,如您希望配置持久的环境变量/密钥信息,也可以本地创建 .env
文件。
$ touch .env # 腾讯云的配置信息
在 .env
文件中配置腾讯云的 SecretId 和 SecretKey 信息并保存。
说明:
- 如果没有腾讯云账号,请先 注册新账号。
- 如果已有腾讯云账号,可以在 API 密钥管理 中获取
SecretId
和SecretKey
。
# .env
TENCENT_SECRET_ID=123
TENCENT_SECRET_KEY=123
注意:使用中国境外 IP 登录时,需要在
.env
文件中添加SERVERLESS_PLATFORM_VENDOR=tencent
,使 sls 默认使用 tencent 组件。
您可以在 Serverless Components repo 中查询更多组件的信息。
为什么不需要入口文件了?
在上一个版本中,使用此组件,用户需要在项目根目录新增 sls.js 文件,现在组件帮忙处理了,所以不需要用户单独处理。具体请参考 GitHub 文档。
随着互联网的发展进入下半场,数据的时效性对企业的精细化运营越来越重要, 商场...
在当今这个互联网的时代,电子商务的飞速发展让我们可以足不出户的从网上买到自...
1.将属性设置为 undefined 将属性设置为 undefined 不是最好的方法,因为属性本...
1. 接口描述 接口请求域名: clb.tencentcloudapi.com 。 创建主题,默认开启全...
图片来自 Pexels 工作日就是:开会、写代码、倒水、上厕所、抽烟、改 Bug,一天...
购买网站 域名 多少钱一年?这个取决于选择什么样的域名后缀作为网站域名,目前...
本文介绍如何将Gin应用部署到函数计算。与传统的部署方法相比,您可以跳过购买机...
容器交付流水线(ContainerOps)以DevOps理念为基础,面向从源代码到生产上线全...
为了满足企业协同办公需求,微软推出了office 365,但是微软的竞争对手们也紧随其...
云容器引擎所提供的接口分为CCE接口与Kubernetes原生接口。通过配合使用CCE接口...