Недавно я потерял довольно много времени, пытаясь понять, почему сценарии 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