这个目录是基于云开发的一个 Nest 应用示例,包含 Nest + 云函数,可以基于 CloudBase Framework 框架将项目一键部署到云开发环境
-
原模板在构建时因为一些版本的问题导致构建失败,修复了版本问题
-
在window开发中npm传参的
NODE_ENV=development
是不一样- linux:
NODE_ENV=development
- winodws:
SET NODE_ENV=development
所以我这里用了
cross-env
库做了统一处理 - linux:
-
修改了
package.json
里的启动脚本信息,追加cross-env
操作,也就是说可以上传云函数,也可以用npm run start:prod
去服务器里跑
"script": {
// ...
"start": "cross-env NODE_ENV=development nest start",
"dev": "cross-env NODE_ENV=development nest start --watch",
"deploy": "tcb framework deploy",
"start:debug": "cross-env NODE_ENV=development nest start --debug --watch",
"start:prod": "cross-env NODE_ENV=development node dist/main.js"
// ...
}
-
因为测试
tcb framework deploy
发现@cloudbase/framework-plugin-node
会把package.json
修改和压缩,所以我这里添加了package copy.json
- 目的:如果团队有人不小心
tcb framework deploy
后拉下来的package.json
是无法用npm run ...
的, 可以考虑将copy
文件的内容拷贝到package.json
本人刚玩cloudbase没几天,可能插件方面没了解全,但是
tcb framework deploy
既然是发布给云函数,那么去除package.json
的没有用(dev
、script
...)的信息也是情理之中的 - 目的:如果团队有人不小心
- 上面提到的启动脚本信息(window不兼容问题)
package.json
版本锁定的问题
后续的操作我就不多说了,不懂的直接看下面的文章
- 待创建完成,然后访问服务
http://cloudbase给你的默认域名/nest-starter/demo
,
{
"code": 200,
"msg": "msg get 😀"
}
- 简化
使用模板
// 浏览器复制粘贴即可
https://console.cloud.tencent.com/tcb/env/index?&action=CreateAndDeployCloudBaseProject&appUrl=https://github.com/JYbill/cloudbase-nest-template-windows&branch=master&appName=nest-starter
-
tcb将项目拉去到本地
- 创建一个
cloudbaserc.json
方便使用tcb cli
{ "version": "2.0", "envId": "自己的环境ID", "$schema": "https://framework-1258016615.tcloudbaseapp.com/schema/latest.json", "functionRoot": "./functions", "functions": [ { "name": "nest-starter", "installDependency": false, "entry": "app.js", "ignore": [ "node_modules", "node_modules/**/*" ] } ], "region": "自己的地域如:ap-guangzhou/ap-shanghai" }
tcb fn code download nest-starter
拉取nest-starter
云函数
- 将
package copy.json
文件内容拷贝到package.json
文件npm i -> npm run start
即可
- 创建一个
-
vs code插件cloudbase toolkit拉去到本地
- 第一步与
tcb cli
一致,新建cloudbaserc.json
,内容复制上面的tcb第一步 - 右键直接操作
- 其他操作与tcb cli的一致
- 第一步与
-
可能会构建失败,因为部署会根据
cloudbaserc.json
文件内的envId
、region
校验是否正确,这个看运气,我有成功也有失败,成功按照上面的走。 -
解决:
- 拉取仓库内容到本地
- 修改
cloudbaserc.json
文件
"envId": "你的环境", "region": "ap-你的地域"
npm run deploy
我的博客文章地址:https://blog.csdn.net/qq_45593068/article/details/122961353