3

I have a node.js project. In this project I have dependency A, and dependency B, also I noticed that dependency A inside it's dependencies has dependency B, so my question is should I install dependency B or I can just use it from dependency A ?

1 Answer 1

5

You can, but...

What happens if dependency A no longer has the dependency on B?

For this reason, you should add as dependencies all packages you require in your code.

Edit

Further points to consider:

Your code has been build for version 1.0.0 of the code, and A has upgraded the version of B required to 2.0.0 of the code.

Assuming dependency B follows SEMVER, major breaking changes will have occured between version 1.0.0 and version 2.0.0. If B doesn't follow SEMVER, then breaking changes could apply at any moment.

NPM (Yarn, and other package managers) will take care of this, and provide the correct version for the different packages and the project as a whole. This means version 1.0.0 of package B will be put directly in your node_modules folder, whilst version 2.0.0 of package B is put into the node_modules folder for package A.

Frameworks/Libraries

When including a library, framework, or the likes, it is common to use packages that library/framework use directly even though you haven't put them in your references.

This should be kept to a minimum, and only according to the library/framework documentation as it can cause complications if you ever need to upgrade the library/framework (which you should do frequently).

2
  • And what happens if, for instance, I use dependency B with version 2.0.0, and dependency A use dependency B with version 1.0.0 ? How will it affect ? Commented Jan 18, 2022 at 9:48
  • @MykytaManuilenko this is a good point, and is an additional reason to reference your required packages regardless of what your other dependencies require. I've ammended my answer to further explain.
    – SEoF
    Commented Jan 18, 2022 at 10:15

Not the answer you're looking for? Browse other questions tagged or ask your own question.