How to override your dependency’s dependencies (#tilPost)

npm released version 8.3 of their CLI client in December and it looks like an unspectacular release but includes a helpful new feature – "overrides".
The JavaScript ecosystem has been on fire since Node.js and npm appeared…


This content originally appeared on Stefan Judis Web Development and was authored by Stefan Judis

npm released version 8.3 of their CLI client in December and it looks like an unspectacular release but includes a helpful new feature - "overrides".

The JavaScript ecosystem has been on fire since Node.js and npm appeared. There's always a package for everything, and people YOLO-publish whatever they please. It's a vibrant and enabling ecosystem feeling like the wild wild west. And of course, there are pros and cons to countless dependencies.

I love that I can "just install another package" but share the concerns about the increasing project complexity. Suppose your project relies on one dependency that depends on another dependency that again depends on another one just to add two numbers. In that case, countless things could go wrong. "npm overrides" give you more power over what's installed in your dependency tree.

Let's say one of your dependencies (1st level) relies on another dependency that includes outdated other dependencies (2nd level). There hasn't been an easy way to update dependencies down the tree other than forking and fixing your first-level dependency.

your-project
  |_ some-module @1.0.0
      |_ another-module-which-should-be-updated @1.0.0

You can now specify an overrides property in your package.json to override and enforce dependency versions in the tree.

{
  "overrides": {
    "bar@2.0.0": {
      "foo": "1.0.0"
    }
  }
}

The new feature comes in handy to

  • patch a dependency with a known security issue
  • replace an existing dependency with a fork
  • make sure that the same package version is used everywhere.

It's such a welcome addition; thanks, npm! 🎉

Read more about it in the npm docs.


Reply to Stefan


This content originally appeared on Stefan Judis Web Development and was authored by Stefan Judis


Print Share Comment Cite Upload Translate Updates
APA

Stefan Judis | Sciencx (2022-01-13T23:00:00+00:00) How to override your dependency’s dependencies (#tilPost). Retrieved from https://www.scien.cx/2022/01/13/how-to-override-your-dependencys-dependencies-tilpost/

MLA
" » How to override your dependency’s dependencies (#tilPost)." Stefan Judis | Sciencx - Thursday January 13, 2022, https://www.scien.cx/2022/01/13/how-to-override-your-dependencys-dependencies-tilpost/
HARVARD
Stefan Judis | Sciencx Thursday January 13, 2022 » How to override your dependency’s dependencies (#tilPost)., viewed ,<https://www.scien.cx/2022/01/13/how-to-override-your-dependencys-dependencies-tilpost/>
VANCOUVER
Stefan Judis | Sciencx - » How to override your dependency’s dependencies (#tilPost). [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/01/13/how-to-override-your-dependencys-dependencies-tilpost/
CHICAGO
" » How to override your dependency’s dependencies (#tilPost)." Stefan Judis | Sciencx - Accessed . https://www.scien.cx/2022/01/13/how-to-override-your-dependencys-dependencies-tilpost/
IEEE
" » How to override your dependency’s dependencies (#tilPost)." Stefan Judis | Sciencx [Online]. Available: https://www.scien.cx/2022/01/13/how-to-override-your-dependencys-dependencies-tilpost/. [Accessed: ]
rf:citation
» How to override your dependency’s dependencies (#tilPost) | Stefan Judis | Sciencx | https://www.scien.cx/2022/01/13/how-to-override-your-dependencys-dependencies-tilpost/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.