Недавно я потерял довольно много времени, пытаясь понять, почему сценарии npm внезапно завершатся сбоем в Windows под Git bash, если они попытаются выполнить bash (например, «do-something»: «bash ./do-something.sh»).
Я как обычно выполнял сценарии npm из Git Bash, поэтому, конечно, на моем пути был bash.exe, но он не был найден в среде, привязанной к процессу выполнения сценария:
‘bash’ is not recognized as an internal or external command, operable program or batch file. npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! [email protected] clean-assets: `bash ./build.sh clean_assets` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the [email protected] clean-assets script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
К моему удивлению, покопавшись некоторое время, я понял, что скрипт выполняется под cmd.exe.
Очевидно, начиная с npm 5, мы можем выбрать оболочку для использования, определив параметр «script-shell» в конфигурации npm:
npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
После установки моя проблема была решена.
Надеюсь это поможет! :)
Для справки, я нашел этот связанный вопрос SO: https://stackoverflow.com/questions/23243353/how-to-set-shell-for-npm-run-scripts-in-windows