Как создать git хуков в Windows с Node.js? - PullRequest
0 голосов
/ 07 мая 2020

Я следовал этому руководству о том, как использовать Node.js для сценариев git хуков. Однако в руководстве используется система на основе Unix, пока я работаю на машине Windows.

Я также нашел это руководство по запуску git крючков на Windows, но он не использует Node.js

  • Я запускаю сценарий pre-install в моем пакете. json файл для установки пользовательского git расположение хуков.
  • Я использую VSCode в качестве редактора и хочу, чтобы git хуки запускались, когда я использую пользовательский интерфейс для коммитов и т. д. c. Однако сначала я использую командную строку, чтобы попытаться запустить крючки.

package. json отрывок

  "scripts": {
    "preinstall": "git config core.hooksPath ./git.hooks"
  },

В моем git.hooks папка У меня есть файл pre-commit.js.

Я обновил первую строку, чтобы отразить тот факт, что я хотел бы запустить скрипт, работающий Node.js

предварительная фиксация . js

#!C:/Program\ Files/nodejs/node.exe

console.log('Hello world!');

process.exit(1);

Если я запускаю этот скрипт напрямую, я получаю ошибку компиляции Microsoft JScript - недопустимый символ в строке 1, символ 1.

Если я выполняю фиксацию, Я не получаю ошибок, но ничего не происходит.

Может ли кто-нибудь провести меня через процесс создания ловушки Node.js в Windows. Я бы предпочел создать его сам, чем использовать пакет.

1 Ответ

2 голосов
/ 07 мая 2020
  1. Назовите ловушку точно pre-commit, без .js.

  2. Измените первую строку на #!/usr/bin/env node. Но убедитесь, что C:/Program\ Files/nodejs/node.exe был добавлен в переменную среды PATH.

  3. Поместите его в <repo>/.git/hooks.

  4. Make это исполняемый файл. В git - bash запустите chmod a+x <repo>/.git/hooks/pre-commit.

Теперь все должно работать как положено.

...