web-dev-qa-db-ja.com

すべてのパッケージ依存関係ツリーを表示する方法

0.9.3以降、meteorパッケージの依存関係に問題があります。たとえば、一部のサードパーティパッケージは、すべての依存関係を宣言していません(アンダースコアなど、通常は含まれますが、別のパッケージで使用される場合は含まれません)。

Npmのように、依存関係のツリーを表示する簡単な方法はありますか?

流星リストには、プロジェクトの内容が表示されます

.meteor/versionsはすべてのパッケージを表示しますが、他のパッケージが含まれている(または含まれていない)ものを見つけようとしています。

現在、次のようなエラーが発生していますが、Minimongoid afaikが含まれておらず、greppingでそれへの参照が見つかりません。

W20141001-19:19:46.137(-7)? (STDERR) /Users/dc/.meteor/packages/meteor-tool/.1.0.33.he3qxx++os.osx.x86_64+web.browser+web.cordova/meteor-tool-os.osx.x86_64/dev_bundle/lib/node_modules/fibers/future.js:173
W20141001-19:19:46.137(-7)? (STDERR)                        throw(ex);
W20141001-19:19:46.138(-7)? (STDERR)                              ^
W20141001-19:19:46.141(-7)? (STDERR) ReferenceError: Minimongoid is not defined
W20141001-19:19:46.141(-7)? (STDERR)     at collections/user.coffee:1:20
W20141001-19:19:46.141(-7)? (STDERR)     at /Users/dc/dev/shumi/package-dev/app/.meteor/local/build/programs/server/app/collections/user.coffee.js:24:3
W20141001-19:19:46.142(-7)? (STDERR)     at /Users/dc/dev/shumi/package-dev/app/.meteor/local/build/programs/server/boot.js:168:10
W20141001-19:19:46.142(-7)? (STDERR)     at Array.forEach (native)
W20141001-19:19:46.142(-7)? (STDERR)     at Function._.each._.forEach (/Users/dc/.meteor/packages/meteor-tool/.1.0.33.he3qxx++os.osx.x86_64+web.browser+web.cordova/meteor-tool-os.osx.x86_64/dev_bundle/lib/node_modules/underscore/underscore.js:79:11)
W20141001-19:19:46.142(-7)? (STDERR)     at /Users/dc/dev/shumi/package-dev/app/.meteor/local/build/programs/server/boot.js:82:5
31
dcsan

公式ツールにこの機能が追加されるのを待っている間、醜いスローバージョンがあります。

for p in `meteor list | grep '^[a-z]' | awk '{ print $1"@"$2 }'`; do echo "$p"; meteor show "$p" | grep -E '^  [a-z]'; echo; done

これにより、追加されたすべてのパッケージの依存関係が表示されます。 meteor listmeteor show package@versionの出力を解析し、何かが変更されると中断します。

36
sba

Meteor v1.5.2( 2017-09-05リリース )以降、次のような完全な依存関係ツリーを表示できるようになりました。

meteor list --tree

出力は次のようになります。

$ meteor list --tree

[email protected]
├─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected] (top level)
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected] (expanded above)
│ │ │ ├── [email protected] (top level)
│ │ │ ├─┬ [email protected]

プルリクエストは sdarnel によって提供され、興味のある人はここで見つけることができます: https://github.com/meteor/meteor/pull/8936

7
alanning

これが私がしたことです...

meteor listを実行し、後で参照できるように出力をメモ帳にコピーしました。

次に、リスト全体を調べて、次のように入力します。meteor show <package>出力を探して:Implies: whatever ...これは、特定のパッケージに何が含まれているかを示す部分です。基本的に、「Implies:something」という出力の部分は、meteor show <package>を実行したパッケージの依存関係です。

次に...「Implies:foopackage」のパッケージを取得し、「meteor show foopackage」を実行すると、that依存関係の依存関係がわかります。

基本的に、これはこの問題の大まかな解決策であり、公式の解決策/機能/コマンドはありません。

幸運を。

P.S.私の場合、iron:routerが含まれているものを確認したかったので、上記のプロセスを通じて、useraccounts:semantic-uiが含まれているのはuseraccounts:coreであり、iron:routerが含まれていると判断しました(meteor listには含まれていません!)

詳細については、次のページを参照してください: https://github.com/meteor/meteor/issues/285

3

パッケージツリーを構築し、次のような画像を作成するために、いくつかの ここにコード を記述しました。

enter image description here

それは流星分布の生のソースコードで動作したので、実際のアプリで動作するためにいくつかの調整が必要です(そして私は現時点ではそれを助けることはできません)が、それは始まりになるでしょう...

2
Dean Radcliffe