web-dev-qa-db-ja.com

yarnでグローバルパッケージをインストールする方法

yarn install -hは、-g(グローバル)オプションがDEPRECATEDであることを提案します。大量のパッケージ(package.json/yarn.lockファイル)をグローバルにインストールすることを示すにはどうすればよいですか?

私が見たオプション:

  • yarn global [command]にはlsaddなどがありますが、installはありません。 addは、私が正しく理解していれば、特定のパッケージ名でのみ機能します。既にyarn.lockファイルの準備ができているので、コマンドラインで繰り返したくありません。
  • yarn global add各パッケージを1つずつ。これで、パッケージのリストは宣言的ではなく必須になります。

特に、これらのパッケージの1つから実行可能ファイルを1つ使用したいと思います。

55
jleeothon

大量のパッケージ(package.json/yarn.lockファイルから)をグローバルにインストールすることを示すにはどうすればよいですか?

すべきではない。 Yarnはグローバルにインストールすることを推奨していません。また、必要な場合、または役立つ場合もほとんどありません。

ドキュメント に記載されているとおり:

大部分のパッケージでは、暗黙的であるためグローバルな依存関係を持つことは悪い習慣と見なされます。すべての依存関係をローカルに追加して、それらが明示的になり、プロジェクトを使用する他のユーザーが同じ依存関係のセットを取得できるようにすることをお勧めします。

BinがあるCLIツールを使用しようとしている場合、。/ node_modules/.binディレクトリーでこれらにアクセスできます。

しかし、本当に、本当にしたい!

really与えられたアドバイスを聞きたくない場合は、

yarn global add <package>

ただし、依存関係の膨大なリストをグローバルに簡単にインストールすることを期待しないでください。設計によってを行うのは困難です


代わりに、Yarnでの目的のフローは次のとおりです。

  • すべてをローカルにインストールして、各プロジェクトを分離します
  • 可能な場合、./node_modules/.binからバイナリを呼び出します
  • グローバルインストールは避けてください。これらは便利ですが、信頼すべきインストールではありません。
28
Aurora0001

入力するだけ

yarn global add nodejs
52
vijay

興味のある方のために、yarnを介してインストールされたグローバルアプリケーションをインストールおよび管理する方法をご紹介します。

最初に、アプリケーションを含むディレクトリを作成します。たとえば、~/.yarn-global

mkdir ~/.yarn-global
cd ~/.yarn-global

次に、ここからアプリケーションをインストールします。

yarn add yourapp

最後に、プロファイルファイル、つまり.bashrcまたは.bash_profileを開き、binディレクトリへのパスを追加します。

export PATH="$PATH:$HOME/.yarn-global/node_modules/.bin"

これ以降、このディレクトリにインストールしたアプリケーションは、シェルのどこからでも利用できるようになります。

これが完了すると、この.yarn-globalディレクトリでのみ動作するyarn-globalユーティリティスクリプトを作成することもできます。例えば:

Sudo vim /usr/bin/yarn-global
Sudo chmod 755 /usr/bin/yarn-global

スクリプトの内容は次のとおりです。

#!/bin/bash
cd "$HOME/.yarn-global"
yarn $1 "$2"

これで、yarn-global add someappyarn-global upgrade someappなどを実行できます。

12
laurent