wclr / yalc

Work with yarn/npm packages locally like a boss.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dependencies not being installed when using `--link`

OmarJaroudi opened this issue · comments

Hello,

I want to use yalc add <package> --link but I noticed that the original dependencies of the package I'm consuming are being dropped after I run yarn install
So if my yarn.lock file originally looked like

  version: 1.1.0
  resolution: "etc"
  dependencies:
    http-proxy-middleware: ^2.0.6
  peerDependencies:
    express: ^4.18.1

After running yalc add --link the entry for that package in my yarn.lock file looks like

 "my-local-package@link:.yalc/my-local-package::locator=%40me%2Fconsumer":
  version: 0.0.0-use.local
  resolution: "my-local-package@link:.yalc/my-local-package::locator=etc"
  languageName: node
  linkType: soft

As such, I end up missing some dependencies needed by my-local-package and cannot start my consumer app.

Any ideas if there is a way past this? Ideally to ensure that the dependencies of a yalc'd package are installed while using --link.

I'm using link instead of the classic file because I don't want to have to run yarn install every time I push changes to my-local-package. link allows me to pick up changes on reload

Hi @OmarJaroudi!

This is not an issue with yalc itself but more precisely with the link: protocol.

The list of Yarn supported protocols: https://yarnpkg.com/features/protocols
image

From what we can see, the link protocol doesn't follow package dependencies. Meaning that if we link to a package, the package dependencies won't actually be installed.

This is solved by the portal protocol - which should work in the exact same way as link but it actually installs the dependencies of the link.

I made a PR to support portal: #219