是否可以在 .watchmanconfig 中配置 watchman 触发器?
Is it possible to configure watchman triggers in .watchmanconfig?
Facebook watchman 文档描述了如何通过将 json 传递到命令中来配置触发器,如下所示:
watchman --json-command < ./tasks/cmds/watchman-build-trigger.json
其中 watchman-build-trigger.json 包含以下内容:
[
"trigger",
"/Users/michaelprescott/Projects/neuro",
{
"name": "build",
"expression": [
"anyof",
[
"match",
"src/*.js",
"wholename"
],
[
"match",
"src/*.ts",
"wholename"
],
[
"match",
"src/*.html",
"wholename"
]
],
"command": [
"./tasks/cmds/build.sh"
]
}
]
但是,我正在尝试了解如何使用 .watchmanconfig 设置手表和一组触发器 watchman watch-project
我有以下内容,但未创建触发器。这可能吗?有没有人有 .watchmanconfig 的例子
{
"ignore_dirs": [
"node_modules"
],
"watched": [
{
"path": "/Users/michaelprescott/Projects/neuro",
"triggers": [
{
"command": [
"./tasks/cmds/build.sh"
],
"expression": [
"anyof",
[
"match",
"src/*.js",
"wholename"
],
[
"match",
"src/*.ts",
"wholename"
],
[
"match",
"src/*.html",
"wholename"
]
],
"name": "build"
}
]
}
]
}
不,通过 .watchmanconfig
是不可能的。理由是,由于 .watchmanconfig
旨在被签入一个可以被任意人克隆的 repo,我们宁愿不允许它成为任意代码可以 运行 的工具那些明确采取行动 运行 的人。
我们的建议是将触发器的创建封装在某种脚本中,当用户想要启用触发行为时,您可以将其引导至 运行。
此外,我建议您转而查看此用例的 watchman-make;它比触发器更符合人体工程学,因为它更容易查看正在运行的命令的输出 运行 并在您希望它们停止时终止它们。
例如,您可以这样实现触发器:
watchman-make -r tasks/cmds/build.sh -p 'src/*.js' -p 'src/*.ts' -p 'src/*.html'
(单引号很重要!)
Facebook watchman 文档描述了如何通过将 json 传递到命令中来配置触发器,如下所示:
watchman --json-command < ./tasks/cmds/watchman-build-trigger.json
其中 watchman-build-trigger.json 包含以下内容:
[
"trigger",
"/Users/michaelprescott/Projects/neuro",
{
"name": "build",
"expression": [
"anyof",
[
"match",
"src/*.js",
"wholename"
],
[
"match",
"src/*.ts",
"wholename"
],
[
"match",
"src/*.html",
"wholename"
]
],
"command": [
"./tasks/cmds/build.sh"
]
}
]
但是,我正在尝试了解如何使用 .watchmanconfig 设置手表和一组触发器 watchman watch-project
我有以下内容,但未创建触发器。这可能吗?有没有人有 .watchmanconfig 的例子
{
"ignore_dirs": [
"node_modules"
],
"watched": [
{
"path": "/Users/michaelprescott/Projects/neuro",
"triggers": [
{
"command": [
"./tasks/cmds/build.sh"
],
"expression": [
"anyof",
[
"match",
"src/*.js",
"wholename"
],
[
"match",
"src/*.ts",
"wholename"
],
[
"match",
"src/*.html",
"wholename"
]
],
"name": "build"
}
]
}
]
}
不,通过 .watchmanconfig
是不可能的。理由是,由于 .watchmanconfig
旨在被签入一个可以被任意人克隆的 repo,我们宁愿不允许它成为任意代码可以 运行 的工具那些明确采取行动 运行 的人。
我们的建议是将触发器的创建封装在某种脚本中,当用户想要启用触发行为时,您可以将其引导至 运行。
此外,我建议您转而查看此用例的 watchman-make;它比触发器更符合人体工程学,因为它更容易查看正在运行的命令的输出 运行 并在您希望它们停止时终止它们。
例如,您可以这样实现触发器:
watchman-make -r tasks/cmds/build.sh -p 'src/*.js' -p 'src/*.ts' -p 'src/*.html'
(单引号很重要!)