In my case I want to use npm clean-install instead of npm install to ensure that my package-lock and my package.json have not diverged.
Yes. To do this you need to start your build hook with
set -e. That means :
-e Exit immediately if a command exits with a non-zero status.
To be a bit more clear, if you don’t use
set -e, the build will exit with the exit code of the last command.
ls /folder/that/doesnt/exist exit 0
Will exit with exit code “0”, for success. If you use
set -e, the build will exit after the
ls with the exit code that
ls failed with.
Another option that is usually useful is
set -o pipefail which will fail the build if a piped command fails.
set -e ls /folder/that/doesnt/exist | echo foo exit 0
Will return with exit code 0.
set -eo pipefail ls /folder/that/doesnt/exist | echo foo exit 0
Will return with a failure.