chore
: ensure husky
installs correctly in production builds
#617
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.
This PR addresses an issue where
npm install
fails due tohusky
not being available in production.Reason:
Husky is only listed under
devDependencies
, but theprepare
script (insidepackage.json
) is still executed when we runnpm install
— even in production. This fails becausenpm
skipsdevDependencies
in production mode (NODE_ENV=production
), and thusHusky
isn’t installed.In the
Dockerfile
, when we setNODE_ENV=production
, runningnpm install
doesn't includedevDependencies
. But the prepare script will still run and cause the build to fail unless dependencies like husky are available.Solutions:
Solution 1 (this PR, the simplest solution and better because it solves the issue even for people not using
Docker
): Move husky fromdevDependencies
todependencies
Another solution: Add this to
Dockerfile
RUN npm install husky --omit=optional
This ensures that even though
npm ci
omitsdevDependencies
, Husky will still be available.