我正在尝试使用fswatch在Mac OS上进行更改时构建Angular6库。可以检测到更改,并且生成运行正常,但是生成本身会触发事件,从而导致生成连续循环,即使我没有监视输出目录,也仅监视src目录。
我正在使用此命令(在我的NG6 proj根目录中):
$ fswatch ./projects/my-lib/src/ | xargs -I {} ng构建my-lib
更改单个文件后,ng构建将连续循环运行。当我打印出详细事件时,虽然不确定前一行是罪魁祸首,但我会在构建的中间看到事件。我不确定ng构建为何触发fswatch。输出如下:
$ fswatch -x -v ./projects/my-lib/src/ | xargs -I {} ng构建my-lib
register_signal_handlers:SIGTERM处理程序已注册。
register_signal_handlers:已注册SIGABRT处理程序。
register_signal_handlers:已注册SIGINT处理程序
start_monitor:添加路径:/ [我的路径] / my-proj / projects / my-lib / src
运行:正在创建FSEvent流...
run:使用run loop调度流...
运行:正在启动事件流...
run:正在开始运行循环...
notify_events:通知事件#:1。
构建Angular包
建筑入口点'@ mygroup / my-lib'
渲染样式表
编译渲染模板
通过ngc的TypeScript来源
notify_events:通知事件#:1. <<<构建期间的事件
捆绑到FESM2015
捆绑到FESM5捆绑到UMD
notify_events:通知事件#:1. <<<构建期间的事件
我还尝试使用以下命令过滤仅更新的事件,但它还会循环:
.fswatch -m fsevents_monitor -x -v --event已更新./projects/my-lib/src/ | xargs -I {} ng构建my-lib
有什么想法可以阻止ng构建循环吗?