2014-10-02 7 views
26

Dal momento che 0.9.3 sto avendo qualche problema con le dipendenze del pacchetto di meteora, per esempio alcuni pacchetti di terze parti non dichiarano tutte le loro dipendenze (come underscore, che normalmente sarebbero incluse ma non se usato da un altro pacchetto).come mostrare tutto l'albero di dipendenza del pacco

C'è un modo semplice per mostrare l'albero delle dipendenze, proprio come fa npm?

lista meteora mostrerà ciò che è nel progetto

.meteor/versioni mostrerà tutti i pacchetti ma sto cercando di scoprire che cosa è compreso (o meno) altri pacchetti.

attualmente sto ricevendo errori come il seguente, ma non ho incluso Minimongoid afaik e grepping non trova alcun riferimento ad esso.

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 
+1

Mi piacerebbe anche essere in grado di fare questo, in modo che possiamo capire [quale pacchetto ha una dipendenza da una vecchia versione di un pacchetto t hat was broken] (https://github.com/TelescopeJS/Telescope/issues/861). –

+0

Qualche notizia su questo? –

risposta

3

Ecco quello che ho fatto ...

ho corse meteor list, e copiato l'uscita al notepad, di rinviare a più tardi.

Quindi, sono andato giù per l'intera lista, inserendo: meteor show <package> guardando nell'output per: Implies: whatever ... questa è la parte che ti dice quale pacchetto è incluso. Fondamentalmente, la parte dell'output che dice "Implies: something", quelle sono le dipendenze del pacchetto che hai eseguito per meteor show <package>.

Quindi ... se si prendono i pacchetti in "Implies: foopackage" ed è in esecuzione "meteor show foopackage" che indicherà le dipendenze della dipendenza da.

Fondamentalmente, questa è una soluzione approssimativa a questo problema per il quale non esiste una soluzione/funzione/comando ufficiale.

Buona fortuna.

P.S. nel mio caso, ho voluto vedere cosa stava compresi iron:router, e attraverso il processo di cui sopra, ho deciso che era useraccounts:semantic-ui che è stato compreso useraccounts:core, che a sua volta è stato compreso iron:router (che non è in meteor list!)

Vedere la pagina seguente per ulteriori informazioni: https://github.com/meteor/meteor/issues/2853

2

ho scritto qualche code here per costruire un albero dei pacchetti, e rendere le immagini in questo modo:

enter image description here

e wOR Ked sul codice sorgente grezzo della distribuzione meteorica, quindi avrebbe bisogno di qualche ritocco per lavorare su un'app reale (e non posso aiutarlo al momento), ma sarebbe un inizio ...

+1

Bello, ma potresti anche spiegare in modo sintetico come funziona il tuo codice? In questo modo se per qualche ragione il tuo repository viene investito da un autobus, l'eredità viene preservata. –

+0

Per favore aggiungi README a questo codice – Daniel

33

mentre stiamo aspettando gli strumenti ufficiali di avere questa funzionalità, ecco la vershion uglyslow:

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

questo mostrerà le dipendenze di tutti i pacchetti aggiuntivi. Analizza l'output di meteor list e meteor show [email protected] e si interromperà quando qualcosa cambia.

+1

una versione leggermente migliorata di questo può essere trovata qui https://github.com/meteor/meteor/issues/2853 (commento di abernix il 1 marzo 2017) – charlesdeb

1

A partire da Meteor v1.5.2 (released 2017-09-05) ora è possibile vedere l'albero delle dipendenze completa in questo modo:

meteor list --tree

Ecco cosa l'output appare come:

$ 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] 

La richiesta di pull è un contributo di sdarnel e può essere trovato qui per chi fosse interessato: https://github.com/meteor/meteor/pull/8936

+0

Questa è la nuova risposta! Grazie Adrian :-) –

Problemi correlati