如何调试应用程序并使用 nodemon 测试手表
Posted
技术标签:
【中文标题】如何调试应用程序并使用 nodemon 测试手表【英文标题】:How to debug application and also test watch with nodemon 【发布时间】:2020-12-08 09:02:41 【问题描述】:我正在开发一个使用docker-compose
执行的 NestJS 项目。在docker-compose
运行的众多容器中,有一个容器使用 nodemon 运行应用程序(允许我在必要时对其进行调试),另一个容器在检测到代码更改时执行单元测试。
有没有办法执行应用程序并对同一容器上的代码更改运行单元测试?这是好习惯吗?这将使我的机器执行得更快,因为整套容器的资源非常繁重,并且只有一个容器来运行应用程序并即时运行单元测试将让我删除仅用于单元测试的容器。
nodemon 配置文件是这样的:
"watch": ["src"],
"ext": "ts,json",
"ignore": ["src/**/*.spec.ts"],
"exec": "nest build && node --inspect=0.0.0.0 ./dist/main.js"
第二个容器中的单元测试使用jest --watch
执行。
【问题讨论】:
【参考方案1】:我正在使用一个容器来运行应用程序和执行测试。我看没有问题。因为我使用sqlite3
进行e2e 测试,所以我的Dockerfile
看起来像这样:
FROM node:12.18.1
RUN apt-get update \
&& apt-get install sqlite3 \
同样在docker-compose.yml
我对这个节点容器的命令是:
command: npm run start:debug-remote
因为为什么不呢。这个 npm 命令是:
"start:debug-remote": "nest start --debug 0.0.0.0:9229 --watch"
为了让调试器工作,您必须在docker-compose.yml
(或Dockerfile
)中公开此端口(9229)并在.vscode/launch.json
配置中设置它。
【讨论】:
你的start:debug-remote
脚本是做什么的?以上是关于如何调试应用程序并使用 nodemon 测试手表的主要内容,如果未能解决你的问题,请参考以下文章