Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

npm link removes child dependencies

I am trying to do local development of an NPM package and test it in a package which depends on it. I'm using NPM (7.5.3) and specifically npm link for this but running into a problem with the chain of dependencies.

The child package has dependencies, these are all added to the parent's node_modules folder when using npm install "git+https://github.com/name/child_package". But when I npm link that module:

cd child_package
npm link
cd ../parent_package
npm link child_package

With the last command run (npm link child_package), all of the dependencies for child_package which were in the node_modules of parent_package are removed. NPM reporting:

removed 60 packages, changed 1 package, and audited 231 packages in 1s

At which point all the compilation in the parent package fails due to the missing deps. It finds the child_package, which is symlinked as expected, but dependency defined in child_package of "gsap" has now been removed.

If I reinstall it using npm install "git+https://github.com/name/child_package" it will add the deps back into the node_modules folder of the parent project.

like image 487
buckaroo1177125 Avatar asked Dec 06 '25 02:12

buckaroo1177125


2 Answers

This is a behavior introduced in npm V7 + .

The only reasonable "workaround" i have found is to go back to npm 6 (npm install -g npm@6).

Another "workaround" is to npm install --no-save ../../my-local-module but to reflect changes to the local module you will need to delete it from node_modules and reinstall again. Kind of lame....

like image 76
Jasminen Avatar answered Dec 07 '25 16:12

Jasminen


try to do the following:

cd child_package
npm install

that will install child dependencies to directory of child package

personally I hate npm link and always use npm publish (use version number like 1.0.0-preview.1 for your child package and remove '-preview.Number' when you are done)

like image 26
Andrey Avatar answered Dec 07 '25 18:12

Andrey



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!