fix: improve Husky installation strategy for CI and Docker builds#7
Merged
Merged
Conversation
Setting HUSKY=0 environment variable prevents Husky from running during CI and Docker builds where git hooks are not needed. This fixes the 'husky: not found' error when npm ci --omit=dev skips installing devDependencies.
Instead of using HUSKY=0 environment variable, use postinstall script that checks for .git directory existence. This automatically installs git hooks only in development environments where a git repository exists, and skips installation in CI, Docker builds, and npm package installs. This is a cleaner solution that doesn't require environment variable configuration and handles all edge cases gracefully.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Previous builds were failing with
husky: not founderrors in CI and Docker environments because thepreparescript tried to run Husky when devDependencies weren't installed.Solution
Replaced the
preparescript with a smartpostinstallscript that:.gitdirectoryChanges
prepare→postinstallwith .git directory checkHUSKY=0workaround (no longer needed)HUSKY=0workaround (no longer needed)This is a cleaner, more robust solution that automatically handles all deployment scenarios without manual configuration.
Testing
✅ Works in development (git hooks install)
✅ Works in CI (gracefully skips)
✅ Works in Docker builds (gracefully skips)