# cloudbase-nest-template-windows
**Repository Path**: JYbill/cloudbase-nest-template-windows
## Basic Information
- **Project Name**: cloudbase-nest-template-windows
- **Description**: cloudbase云开发之Nest模板
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2022-02-16
- **Last Updated**: 2022-03-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: template
## README
# Nest 应用示例
这个目录是基于云开发的一个 [Nest](https://nestjs.com/) 应用示例,包含 Nest + 云函数,可以基于 **[CloudBase Framework](https://github.com/TencentCloudBase/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`去服务器里跑
```js
"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"
// ...
}
```
4. 因为测试`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`...)的信息也是情理之中的
# 原模板
+ 原始模板地址:[https://github.com/TencentCloudBase/cloudbase-templates/tree/master/nest-starter](https://github.com/TencentCloudBase/cloudbase-templates/tree/master/nest-starter)
# 原模板Bug
1. 上面提到的启动脚本信息(window不兼容问题)
2. `package.json`版本锁定的问题
# 使用模板教程

> 后续的操作我就不多说了,不懂的直接看下面的文章
+ 待创建完成,然后访问服务`http://cloudbase给你的默认域名/nest-starter/demo`,
```json
{
"code": 200,
"msg": "msg get 😀"
}
```
# 一键部署方式
+ 简化`使用模板`
```js
// 浏览器复制粘贴即可
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
```json
{
"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"
}
```
2. `tcb fn code download nest-starter`拉取`nest-starter`云函数

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

+ vs code插件cloudbase toolkit拉去到本地
1. 第一步与`tcb cli`一致,新建`cloudbaserc.json`,内容复制上面的tcb第一步
2. 右键直接操作
4. 其他操作与tcb cli的一致
# 一键部署/腾讯云部署失败问题
+ 可能会构建失败,因为部署会根据`cloudbaserc.json`文件内的`envId`、`region`校验是否正确,这个看运气,我有成功也有失败,成功按照上面的走。
+ 解决:
1. 拉取仓库内容到本地
2. 修改`cloudbaserc.json`文件
```json
"envId": "你的环境",
"region": "ap-你的地域"
```
3. `npm run deploy`
# 使用CloudBase + Nest教程
我的博客文章地址:[https://blog.csdn.net/qq_45593068/article/details/122961353](https://blog.csdn.net/qq_45593068/article/details/122961353)