Watchman 是一个用于监视文件系统变化的工具,它可以帮助开发者跟踪文件的变化并在变化发生时执行相应的操作。以下是关于 Watchman CLI 的一些基础概念以及相关的使用选项:
-w
或 --watch
:指定要监视的目录。-t
或 --trigger
:定义触发脚本及其参数。--include
:指定包含列表。--exclude
:指定排除列表。-o
或 --output
:指定输出格式,可以是 stdout 或 stderr。假设我们有一个项目目录 my_project
,我们想要监视这个目录下的所有 .js
文件,但排除 node_modules
目录,并且在文件变化时执行一个简单的脚本 my_script.sh
。
watchman watch my_project
watchman -- trigger my_project '*.js' --include 'my_project/**/*.js' --exclude 'my_project/node_modules/**' my_script.sh
在这个例子中,my_script.sh
可能是这样的:
#!/bin/bash
echo "File changed: $1"
这个脚本会在任何 .js
文件变化时被触发,并打印出变化的文件路径。
要查看触发脚本的输出,可以直接在命令行中运行 Watchman 命令,并观察终端的输出。如果需要将输出重定向到文件,可以使用重定向操作符:
watchman -- trigger my_project '*.js' --include 'my_project/**/*.js' --exclude 'my_project/node_modules/**' my_script.sh > output.log 2>&1
这将把标准输出和标准错误都重定向到 output.log
文件。
问题: 触发脚本没有执行。
原因: 可能是因为文件变化没有正确地被 Watchman 捕获,或者脚本的路径不正确。
解决方法:
-v
或 --verbose
选项增加 Watchman 的输出详细程度,以便调试。watchman --verbose --trigger my_project '*.js' --include 'my_project/**/*.js' --exclude 'my_project/node_modules/**' my_script.sh
通过这些步骤,你应该能够有效地使用 Watchman CLI 来监视文件变化并执行相应的脚本。
领取专属 10元无门槛券
手把手带您无忧上云