2017-08-08 11 views
0

通常、私はpackage.jsonのすべてのモジュールに対してyarn why <package-name>を実行します。 yarnに、プロジェクト内のすべてのパッケージに対して一度にyarn whyを実行するよう指示する方法はありますか?コマンドyarn why node_modules/*を使用したとき糸を一度にすべてのパッケージで使用する理由

答えて

1

これは不可能であると思われる...、糸は次のメッセージを出力:

引数が多すぎます、1

の最大値をこれが信じるように私をリードyarn whyを複数のパッケージで呼び出すことは不可能であること

0

糸は、すべてのパッケージがインストールされている理由を確認する組み込みの方法を提供していないようです。yarn whyは各パッケージのforループ内にあります。

これは、いくつかのパッケージよりもはるかに面倒です。そのため、パッケージのリストを取得する簡単な方法が必要です。

あなたは一時ファイルに依存関係をフィルタリングするか、単に好みのテキストエディタを使用して、手動package.jsondependency -portionを保存するためにjqを使用することができます。

いずれにしても、引用符を付ける必要があります。そう、検索を実行し、次のパラメータを使用してアクションを置き換える:

検索:^.+"(.+?)",$
は交換してください:\1

今、あなたはあなたの一時ファイル内の各エントリの上にforループでyarn whyを実行することができます。

# Print json-array into installed_modules 
cat package.json | jq '.dependencies | keys' > installed_modules         

# edit/search-replace in file 
[…] 

# Loop through each module and run `yarn why` on it 
# This is fish-shell for-loop syntax. 
# You might have to look up how your shell (i.e. bash) does this 
for module in (cat installed_modules); 
    yarn why $module; 
end 
関連する問題