Nestjs 10.x 中文开发文档
使用 Nestjs 10.x 开发的基础管理后台服务,极大简约了代码,降低开发成本,支持打包单js文件,无需安装依赖即可部署,并且可基于sea打包成单个可执行文件,无需安装node即可运行。
npm run start:dev # 开发
npm run build # 打包生产环境
npm run build:ncc # 打包单文件
node ./dist/main.js # 运行服务
node ./dist.ncc/index.js # 运行单文件服务
# 建议使用 pm2 运行
pm2 start ./dist/main.js # 运行服务
pm2 start ./dist.ncc/index.js # 运行单文件服务
使用Node版本 >= 20以上的 sea 能力
打包成功后,可以将 dist.sea 文件夹拷贝到服务器上直接运行
命令行后的参数代表node的分发平台版本后缀
# 打包
./build.mac.sh darwin-arm64 # mac M芯片
./build.mac.sh linux-x64 # linux
./build.mac.sh win-x64 # win
# 运行
./dist.sea/run/nest-serve-darwin-arm64
./dist.sea/run/nest-serve-linux-x64
./dist.sea/run/nest-serve-win-x64.exe
一般情况下可以直接用当前配置,但如果要区分环境的话,就需要在 config 文件夹下添加这两个文件
- development.yaml
- production.yaml
在运行时会根据环境变量 NODE_ENV=配置文件名 进行选择加载,如
NODE_ENV=production yarn start // 加载 production.yaml 覆盖配置
环境变量为空时,默认会尝试加载 development.yaml
- common 公共模块
- tools 工具函数、二次封装的装饰器
- imports 默认模块
- config 配置模块
- logger 日志模块
- upload 文件上传模块
- 支付模块(待定)
- providers 数据/异常拦截
- controller 公共控制器
- dto 公共数据对象
- entity 公共数据实体
- service 公共服务
- initialize.ts 项目初始化流程
- account 帐号模块
- role 帐号角色
- admin 管理员帐号
- user 用户帐号
- auth 授权模块
- infos 信息模块
- category 基础信息分类
- article 文章管理
- products 商品模块(待定)
- 商品分类
- 商品管理
- trade 交易模块(待定)
- 购物车
- 订单管理