web-dev-qa-db-ja.com

Yarnによるローカルパスを使用したパッケージのインストール方法パッケージが見つかりませんでした

package.jsonでは、ローカルパッケージmy-custom-i18nを相対パスで指定しています。

package.json

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

npm installはパッケージを正しくインストールしますが、yarnには問題があり、単にこのパッケージを見つけることができません。

糸の出力

$ 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.

このパッケージが存在しないnpmレジストリで表示されることがわかります。

質問

ローカルパッケージでyarnを使用するための変更はありますか?ローカルパッケージとは、my-custom-i18nとして相対パスでポイントされるパッケージを意味します。

66
michalczukm

Yarnは、ローカルパッケージのプレフィックスfile:を必要とします。

相対パスの場合:

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

絶対パス用

yarn add file:/dev/your-project

たとえば、package.jsonの依存関係は次のように宣言されます。

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

これはYarnとNPMの両方で機能します。

NPMクライアントとの非互換性があり、Yarnチームはこの動作をサポートすることを認識し、宣言しています- GitHubの問題に関するリファレンス

更新:

v0.21.0リリース以降、file:プレフィックスは不要です。 pull-request with fix および changelog を参照してください。

134