michalczukm michalczukm - 1 month ago 119
Node.js Question

How to install package with local path by Yarn? It couldn't find package

In my

package.json
I'm pointing local package
my-custom-i18n
by its relative path:

package.json



"dependencies": {
"core-js": "^2.4.1",
"my-custom-i18n": "./../MyProject.Shared/myproject-i18n",
"rxjs": "5.0.0-beta.12",
...
}


npm install
installs packages correctly, but
yarn
has problem with it and simply cannot find this package:

yarn output



$ yarn
yarn install v0.15.1
info No lockfile found.
[1/4] Resolving packages...
error Couldn't find package "myproject-i18n" on the "npm" registry.
info Visit http://yarnpkg.com/en/docs/cli/install for documentation about this command.


I see that it looks it on the
npm
registry, where this package doesn't live.

Question



Is there any change to use yarn with local packages?
By local packages I mean packages pointed by relative path as
my-custom-i18n
.

Answer

Yarn requires prefix file: for local packages.

For relative path:

yarn add file:./../your-project

For absolute path

yarn add file:/dev/your-project

For your example, dependency in package.json would be declared as follows:

 "my-custom-i18n": "file:./../MyProject.Shared/myproject-i18n",

This works both for Yarn and NPM as well.

It is incompatibility with NPM client, Yarn team is aware and declared to support this behavior - reference on GitHub issue.