Yarn local packages dependencies

Laxmana picture Laxmana · Feb 8, 2018 · Viewed 28.3k times · Source

I have the following folder structure:

~ (user home folder)
 - api
    ...
    - package.json
 - lib
    - libA
      ...
      package.json
    - libB
      ...
      package.json

In libA/package.json I have the following local dependency

"dependencies": {
    "libB": "../libB",
  },

So libA depends on libB.

Now I want inside api project to add as local package libA. I execute cd api && yarn add ../lib/libA and I get the following error/Users/a_user/libB doesn't exist. I understand that yarn sees as current director ~/api so when is reading the dependency of libA it sees ../libB and translate it as ~/libB and not as ~/lib/libB

Is there anyway to achieve it without absolute paths ?

Answer

Fabio Antunes picture Fabio Antunes · Feb 8, 2018

Yes, there is, using yarn link. Basically, yarn link allows you to create symlinks to local projects.

Go to the folder libB and run:

yarn link

Then go to the folder libA and run:

yarn link libB

NOTE: that libB must be the name on the package.json inside the libB folder

Then you can require your libB code as usual:

const libB = require('libB')