2017-09-19 5 views
0

Facebook Veilleur docs décrivent comment configurer les déclencheurs en passant JSON dans la commande comme ceci:Est-il possible de configurer les déclencheurs watchman dans .watchmanconfig?

watchman --json-command < ./tasks/cmds/watchman-build-trigger.json où veilleur-construction-trigger.json contient les éléments suivants:

[ 
    "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" 
     ] 
    } 
] 

Cependant, je suis en train pour comprendre comment utiliser .watchmanconfig pour configurer une montre et un ensemble de déclencheurs avec watchman watch-project J'ai ce qui suit, mais les déclencheurs ne sont pas créés. Est-ce possible? Quelqu'un at-il des exemples pour

{ 
    "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" 
       } 
      ] 
     } 
    ] 
} 

Répondre

0

de .watchmanconfig Non, il est impossible via .watchmanconfig. Puisque .watchmanconfig est destiné à être vérifié dans un repo qui peut être cloné par des gens arbitraires, nous préférerions ne pas le laisser être un véhicule par lequel du code arbitraire pourrait être exécuté sans que ces personnes prennent explicitement une action pour s'exécuter. il.

Nous vous recommandons d'encapsuler la création du déclencheur dans un script quelconque que vous pouvez diriger les utilisateurs à exécuter quand ils souhaitent activer le comportement de déclenchement.

En outre, je vous invite à jeter un oeil à pour ce cas d'utilisation; il a une ergonomie plus agréable que les déclencheurs, car il est beaucoup plus facile de voir la sortie des commandes qui sont exécutées et de les terminer quand vous voulez qu'elles s'arrêtent.

Par exemple, vous pourriez mettre en œuvre votre déclencheur de cette façon à la place:

watchman-make -r tasks/cmds/build.sh -p 'src/*.js' -p 'src/*.ts' -p 'src/*.html'

(! Les guillemets simples sont importants)

+0

Merci pour le conseil! J'ai dû éliminer tous les commutateurs "-p" sauf un pour l'obtenir pour regarder plusieurs modèles. –