Bug: Infinite loop in rc-apps watch

オープン
#174 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

  • #175 @誰か による — マージされずにクローズ

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
node.js, typescript
領域
cli, tooling

調査の方向性

Start at the rc-apps watch entry point and inspect how .rcappsconfig and its ignoredFiles patterns are passed to the file watcher. Reproduce on Windows/WSL2 with an empty dist/ directory, then verify that generated dist/ artifacts and node_modules/ changes no longer trigger repeated builds or deployments.

索引モデルが issue の本文から書いたものです。

説明

Description

The rc-apps watch command enters an infinite build loop on Windows/WSL2 environments. This happens because the file watcher triggers on build artifacts (in dist/) or dependency changes (node_modules/), creating a cycle:
Change -> Build -> Update dist/ -> Change Detected -> Build ...

This occurs even when dist/** is added to .rcappsconfig, suggesting chokidar ignore patterns are not behaving as expected in this environment or the default ignores are insufficient.

Steps to Reproduce

  1. Setup:
    • Create a new app and setup .rcappsconfig
    • Ensure dist/ folder does not exist or is empty.
  2. Execution:
    • Run rc-apps watch .
  3. Observation:
    • The CLI packages and deploys the app successfully.
    • Immediately after, it detects a change (likely the new dist/ artifact) and deploys again.
    • This loop continues indefinitely.
    • Logs shows:
Image
  1. Failure of Mitigation:
    • Adding **/node_modules/** , dist/** and **/dist/** to .rcappsconfig ignoredFiles does not stop the loop in this environment.

Environment Details

  • OS: Windows (WSL2 / Ubuntu)
  • Node Version: v22.16.0
  • Rocket.Chat Server: v7.13.2
  • CLI Version: 1.13.0 wsl-x64 node-v20.19.6
主要言語
TypeScript
スター
49
フォーク
40
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

RocketChat/Rocket.Chat.Apps-cli のほかの issue

RocketChat/Rocket.Chat.Apps-cli の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。