【问题标题】:How to debug application and also test watch with nodemon如何调试应用程序并使用 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 执行。

【问题讨论】:

    标签: node.js docker-compose nestjs nodemon


    【解决方案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 脚本是做什么的?
    猜你喜欢
    • 2016-07-15
    • 2020-06-02
    • 2019-03-12
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    相关资源
    最近更新 更多