link-workspaces

1.1.0 • Public • Published

link-workspaces

Yarn does not respect publishConfig.directory when linking packages in a mono repo. Meaning, when one of your packages isn't being published from the package root - but for example from inside ./dist - your dev environment will not be able to find the package.

This package deals with that limitation by fixing the links during post install.

See relevant issue: yarn#7644. This package should be deprecated once that issue is resolved.

Install

yarn add -D -W link-workspaces

Usage

Add link-workspaces to your postinstall:

{
	"scripts": {
		"postinstall": "link-workspaces"
	}
}

Now run yarn install or yarn postinstall and you should be good to go.

Options

--silent

link-workspaces will print information about created links to stdout. You can silence this by passing the --silent or -s flag.

{
	"scripts": {
		"postinstall": "link-workspaces --silent"
	}
}

--no-source

By default, when the publishConfig.directory is defined, we create a link to the folder mentioned in your source field. If no source field exists, we use the publishConfig.directory. This makes it so that your development environment works with source fields, rather than with dist files.

Provide the --no-source flag to opt out of this behavior.

{
  "scripts": {
    "postinstall": "link-workspaces --no-source"
  }
}

Credits

I've used the following packages/files as inspiration when creating link-workspaces. You might see similarities in the code if you were to compare the files. All source code used and linked below is licensed under the MIT license.

Much kudos to the authors of the original source:

Package Sidebar

Install

npm i link-workspaces

Weekly Downloads

20

Version

1.1.0

License

MIT

Unpacked Size

7.87 kB

Total Files

6

Last publish

Collaborators

  • smeijer