"scripts": {
"cr": "git commit -am ${message} && git pull origin master --rebase && git push --force",
}
Я пытаюсь понять, как запустить приведенное выше что-то вроде:
# yarn cr "commit message"
"scripts": {
"cr": "git commit -am ${message} && git pull origin master --rebase && git push --force",
}
Я пытаюсь понять, как запустить приведенное выше что-то вроде:
# yarn cr "commit message"
Да. вы можете сделать что-то вроде этого
"scripts": {
{
"cr": "f(){ git commit -am $1;};f",
}
}
и yarn run cr -- 'commit message'
вы можете передать n аргументов, разделенных пробелом, и они могут быть доступны через $1, $2..
cmd.exe
.
- person RobC; 09.11.2019
Шаблон sh -c 'shell_command'
работает в *nix и Windows Powershell. Затем вы можете использовать $0
, $1
и т. д. для доступа к аргументам командной строки. Итак, напишите это в своем package.json
:
"scripts": {
"cr": "sh -c 'git commit -am $0 && git pull origin master --rebase && git push --force'",
}
Теперь вы можете запустить эту команду в терминале:
yarn cr commit_message
cmd.exe
.
- person RobC; 09.11.2019
sh
. Powershell обычно использует cmd
по умолчанию. Состояние npm docs: По умолчанию в Unix-подобных системах это команда /bin/sh, в Windows это cmd.exe.. Для истинной кросс-платформенной совместимости вам потребуется оболочка из сценария node.js - например, см. Мой ответ здесь.
- person RobC; 09.11.2019
--force-with-lease
, чтобы избежать гонок. - person Ry-♦   schedule 07.11.2019