Search code examples
djangocookiecutter-django

cookiecutter-django production build fails on `RUN npm install && npm cache clean --force` step


Running docker-compose -f production.yml build fails at Step 4/36 : RUN npm install && npm cache clean --force.

It complains that "npm WARN deprecated set-value@2.0.0: Critical bug fixed in v3.0.1, please upgrade to the latest version."

I've had a look at what depends on set-value and it looks like there's 3 or 4 packages that require it.

Running this on local.yml warns but does not fail to build.

How do I force npm to request the latest version of 'set-value'?


Solution

  • Looks like set-value is a nested dependency of the node dependencies, which are not kept very up to date, unfortunately.

    I suggest you try looking at which ones are outdated using npm outdated, which you can do using the local node image: docker-compose -f local.yml run node npm outdated.

    If you find the offending package, you can then update its version in the package.json. If not, maybe try to update everything would do the trick.

    Finally, to avoid this pain to others or your future self, once/if you figure this out, I invite you to make the changes in the template itself. The file to change is here, and I'll happily review the change or help you out.

    UPDATE: This message npm WARN deprecated set-value@2.0.0: Critical bug fixed in v3.0.1, please upgrade to the latest version. is just a warning though, and should not break the build. If you cannot build your prod image, there might be something else which is broken as I just tried and it worked fine, although I could see this warning.