当然是任意的,但当正在测试的 discourse 实例不是本地实例时,需要从 discourse 的本地克隆运行 discourse_theme 来说有点太荒谬了。
无论如何,我已经按照您的建议进行了操作,在新的 github codespace 和我自己的开发环境中都进行了操作,但仍然出现相同的错误。
通过阅读所有日志(或所有能装进终端历史记录的日志),它出错的所有目录都是 /node_modules/.pnpm。在测试和运行 discourse_theme 时,我遇到了一个尚未更新为使用 pnpm 而不是 yarn 的 TC,我没有看到任何错误,所以我几乎 100% 确定问题在于它正在监视 .pnpm。
从 Symlinked `node_modules` structure | pnpm 来看,它看起来像 node_modules 的正常结构是通过将所有实际代码移动到 /node_modules/.pnpm 来保留的,而 /node_modules/ 中的其余目录只是指向 .pnpm 的符号链接。因此,忽略 .pnpm 可以避免“目录已在监视!”错误。
我稍微玩了一下 discourse_theme gem,并在 watcher.rb 中添加了 listener.ignore /node_modules\\/\\.pnpm/,它似乎运行正常,没有任何错误消息。它甚至检测到了新安装的 pnpm 包。