Skip to content

Replace abandoned tree-kill library (Issue with --watch on MacOS)Β #3156

@gcstarr

Description

@gcstarr

Is there an existing issue that is already proposing this?

  • I have searched the existing issues

Is your feature request related to a problem? Please describe it

NestJS CLI uses tree-kill for its --watch functionality. The tree-kill library has been abandoned for 6 years and recently has started having issues running on MacOS v15+ (Sequoia and up), potentially more likely in mono-repos with large amounts of files (I'm unable to reproduce in a simple Hello World project). The issue is that when a change is detected, an EBADF error occurs when tree-kill tries to kill the running processes.

See this issue in the tree-kill repo, and this conversation with yaacov and @micalevisk in NestJS's Discord server.

Describe the solution you'd like

The main options are to use one of the forks of tree-kill that has had this issue patched, of course risking that the forked library will also be abandoned, or to remove the external dependency entirely. Both approaches work, I've provided examples here and tested that both resolve my issues on MacOS Sequoia 15.5:

Use forked tree-kill example: master...gcstarr:nest-cli:use-tree-kill-fork

Remove external dependency example (was AI assisted as I was looking for a quick feasibility check, though I have tested it in both MacOS and Linux, but not Windows yet): master...gcstarr:nest-cli:remove-tree-kill

Thoughts?

Teachability, documentation, adoption, migration strategy

No response

What is the motivation / use case for changing the behavior?

Removing abandoned dependency that is becoming more problematic.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions