2016-05-13 20 views
8

Considerando il Node.js direttore pacchetto, ossia NPM - ero curioso di sapere se il pubblicare comando esegue il comando pacco prima della pubblicazione o se fa qualcosa di diverso del tutto? Quindi, se dovessi eseguire:Vuol npm pubblicare eseguire un pacchetto NPM

npm publish <folder> 

lo fa prima eseguire il seguente:

npm pack <folder> 

non sono riuscito a trovare nulla menzionato nel documentation.


Il motivo principale per cui sono curioso di questo è che il nostro processo di compilazione sta semplicemente facendo npm publish senza l'esplicito npm pack precedente, ma il pacchetto non sembra avere i contenuti previsti. cioè .; il contenuto dello .tgz differisce quando eseguo un locale npm pack con quello del contenuto dello npm publish.

+0

che tipo di differenza hai? – yrtimiD

risposta

1

Dando un'occhiata all'origine NPM, è possibile vedere che arriva nella funzione publishFromDirectory e chiama nel modulo pack.

https://github.com/npm/npm/blob/b80d650def417645d2525863e9f17af57a917b42/lib/publish.js#L79 e di nuovo a https://github.com/npm/npm/blob/b80d650def417645d2525863e9f17af57a917b42/lib/publish.js#L88

Se si segue attraverso nel modulo confezione, si può vedere che la funzione _pack svolge le stesse 2 fasi:

https://github.com/npm/npm/blob/114d518c75732c42acbef3acab36ba1d0fd724e2/lib/pack.js#L67

Quindi, per rispondere alla tua domanda, non fa esattamente pack <folder> ma chiama negli stessi percorsi di codice principali.

Il codice è per lo più ben scritto e non è difficile da seguire, ti incoraggerei a scavare nel codice sorgente di questi progetti per questo tipo di domande in quanto la tua conoscenza degli strumenti che stai utilizzando esploderà se lo fai.

Problemi correlati