Подтвердить что ты не робот

Как показать все дерево зависимостей пакета

Начиная с 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
4b9b3361

Ответ 1

Пока мы ждем, когда официальные инструменты будут иметь эту функциональность, здесь верный вариант:

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 list и meteor show [email protected] и будет ломаться, когда что-то там изменится.

Ответ 2

Вот что я сделал...

Я запустил meteor list и скопировал вывод в блокнот, чтобы вернуться к нему позже.

Затем я спустился по всему списку, введя: meteor show <package> глядя в вывод для: Implies: whatever... той части, которая сообщает вам, что включает конкретный пакет. В основном, часть вывода, в которой говорится "Implies: something", это зависимости от пакета, на котором вы запускали meteor show <package> для.

Затем... если вы возьмете пакеты в "Implies: foopackage" и запустите "metore show foopackage", которые скажут вам, что зависимости зависят.

В принципе, это грубое решение этой проблемы, для которой нет официального решения/функции/команды.

Удачи.

P.S. в моем случае я хотел посмотреть, что было включено iron:router, и в результате этого процесса я определил, что useraccounts:semantic-ui включал useraccounts:core, который, в свою очередь, включал iron:router (который не находится в meteor list!)

См. следующую страницу для получения дополнительной информации: https://github.com/meteor/meteor/issues/2853

Ответ 3

Я написал код здесь, чтобы создать дерево пакетов и сделать такие снимки:

введите описание изображения здесь

Он работал над исходным исходным кодом распределения метеоров, поэтому для работы над реальным приложением потребуется некоторая настройка, и в данный момент я не могу помочь с этим, но это будет начало...