Search code examples
node.jsnpmyarnpkg

Yarn local packages dependencies


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 ?


Solution

  • Yes, there is, using yarn link. 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')