/cloudbase-nest-template-windows

cloudbase云开发之Nest模板

Primary LanguageTypeScript

Nest 应用示例

这个目录是基于云开发的一个 Nest 应用示例,包含 Nest + 云函数,可以基于 CloudBase Framework 框架将项目一键部署到云开发环境

此模板目的

  1. 原模板在构建时因为一些版本的问题导致构建失败,修复了版本问题

  2. 在window开发中npm传参的NODE_ENV=development是不一样

    • linux:NODE_ENV=development
    • winodws:SET NODE_ENV=development

    所以我这里用了cross-env库做了统一处理

  3. 修改了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"
    // ...
}
  1. 因为测试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的没有用(devscript...)的信息也是情理之中的

原模板

原模板Bug

  1. 上面提到的启动脚本信息(window不兼容问题)
  2. package.json版本锁定的问题

使用模板教程

QQ截图20220216125339

后续的操作我就不多说了,不懂的直接看下面的文章

  • 待创建完成,然后访问服务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将项目拉去到本地

    1. 创建一个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"
    }
    1. tcb fn code download nest-starter拉取nest-starter云函数

    1. package copy.json文件内容拷贝到package.json文件 npm i -> npm run start即可

  • vs code插件cloudbase toolkit拉去到本地

    1. 第一步与tcb cli一致,新建cloudbaserc.json,内容复制上面的tcb第一步
    2. 右键直接操作
    1. 其他操作与tcb cli的一致

一键部署/腾讯云部署失败问题

  • 可能会构建失败,因为部署会根据cloudbaserc.json文件内的envIdregion校验是否正确,这个看运气,我有成功也有失败,成功按照上面的走。

  • 解决:

    1. 拉取仓库内容到本地
    2. 修改cloudbaserc.json文件
    "envId": "你的环境",
    "region": "ap-你的地域"
    1. npm run deploy

使用CloudBase + Nest教程

我的博客文章地址:https://blog.csdn.net/qq_45593068/article/details/122961353