1. ホーム
  2. node.js

[解決済み] Yarnでローカルパスのパッケージをインストールするには?パッケージが見つかりません

2022-05-11 05:13:19

質問

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

パッケージ.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
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 .

どのように解決するのですか?

yarnのバージョン2.xの場合

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: の接頭辞は必要ありません。 参照 を修正したプルリクエスト 変更履歴 .