Nest cli

项目开发离不开工程化的部分,比如创建项目、编译构建、开发时 watch 文件变动自动构建等。Nest它在 @nestjs/cli 这个包里提供了 nest 命令。

1. 直接 npx 执行, npm 会把它下载下来然后执行

npx @nestjs/cli new 项目名

2. 安装到全局(推荐)

npm install -g @nestjs/cli

nest new 项目名
npm update -g @nestjs/cli

3. nest 全局命令

nest -h

3.1. nest new 简写 nest n

创建一个 nest 项目

nest new -h

  • --skip-git:跳过 git 的初始化
  • --skip-install:跳过 install。
  • --package-manager 指定包管理器的(默认会让你选择,指定后将跳过这步)

  • --language 可以指定 typescript 和 javascript,默认typescript
  • --strict 是指定 ts 的编译选项是否开启严格模式的, 默认false, 也就是这么 5 个选项 ,为true时,这5个也会为true:

3.2. nest generate 简写 nest g
3.2.1. 生成 module
nest g module aaa
或
nest g mo aaa
  1. 他生成的module 的代码

2. 他会自动在 app.module 里引入

3.2.2. 生成 controller
nest g controller aaa
或
nest g co aaa
  1. 他生成的controller的代码

  1. 它会更新到 module 的依赖里去

3.2.3. 生成service
nest g service aaa
或
nest g s aaa
  1. 他生成的代码

  1. 它会更新到 module 的依赖里去

3.2.4. 一个一个生成太麻烦,直接生成完整的模块
nest generate resource bbb
或
nest generate res bbb
  1. 他会让你选择使用哪种代码

  1. 是否生成CRUD代码

  1. 他生成的代码

  1. 同样他会在app.module中引入

3.3. nest generate 其他选项
  • -flat 和 --no-flat 是指定是否生成对应目录
  • --spec 和 --no-spec 是指定是否生成测试文件
  • --skip-import 是指定不在 app.module 里引入
  • --project 指定生成代码在哪个子项目的(monorepo 项目有用)

4. nest start

4.1.1. 当你运行这个命令时,项目就会被启动(每次运行,他会先打包,后面讲)

4.1.2. 他的其余参数

  • --watch 改动文件之后自动重新 build(--watch 默认只是监听 ts、js 文件,加上 --watchAssets 会连别的文件一同监听变化,并输出到 dist 目录,比如 md、yml 等文件。)
  • --debug 启动调试的 websocket 服务,用来 debug
  • --exec 可以指定用什么来跑,默认是用 node 跑,你也可以切换别的 runtime
  • --wepback 和 --tsc 是指定用什么编译,默认是 tsc 编译,也可以切换成 webpack(tsc 不做打包、webpack 会做打包,两种方式都可以,node 模块本来就不需要打包,但是打包成单模块能提升加载的性能。)
  • --path 是指定 tsc 配置文件的路径的。
  • --config 指定 nest cli 的配置文件
4.1.3. 这些选项都可以在 nest-cli.json 里配置:

  • 比如 compilerOptions 里设置 webpack 为 true 就相当于 nest build --webpack

  • webpack 设置为 false 就是用 tsc 了

  • deleteOutDir 设置为 true,每次 build 都会都清空 dist 目录
  • assets 是指定 nest build 的时候,把那些非 js、ts 文件也复制到 dist 目录(可以通过 include、exclude 来精确匹配,并且可以单独指定是否 watchAssets。不过只支持 src 下文件的复制,如果是非 src 下的,需要自己写脚本复制)

  • generateOptions 和 nest generate 时加的 --no-spec、--no-flat 一样

生成了一层目录,并且没有生成测试文件

  • sourceRoot 是指定源码目录
  • entryFile 是指定入口文件的名字,默认是 main
  • "$schema": "https://json.schemastore.org/nest-cli" 这是一种 json schema 的规范,里面有全部属性

5. nest build

用来构建项目: 执行 nest build,会在 dist 目录下生成编译后的代码

nest build -h

和上面的start一直,不在赘述

6. nest info

nest info

查看项目信息,包括系统信息、 node、npm 和依赖版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值