2016-05-13 94 views
8

考慮到Node.js的包管理器,即NPM - 我很好奇,如果發佈命令執行之前發佈或命令,如果它做不同的東西共?所以,如果我是執行:是否NPM發佈執行NPM包

npm publish <folder> 

是否首先執行如下操作:

npm pack <folder> 

我無法找到在documentation提到的任何東西。


我對此感到好奇的主要原因是我們的構建過程只是在沒有明確 npm pack的情況下執行 npm publish,但該包似乎沒有預期的內容。即; .tgz的內容與我執行的內容 npm pack時的內容不同。

+0

你有什麼樣的差異? – yrtimiD

回答

1

查看NPM源代碼,您可以看到它到達publishFromDirectory函數,並調用包模塊。

https://github.com/npm/npm/blob/b80d650def417645d2525863e9f17af57a917b42/lib/publish.js#L79,並再次在 https://github.com/npm/npm/blob/b80d650def417645d2525863e9f17af57a917b42/lib/publish.js#L88

如果循入組模塊,你可以看到_pack函數執行相同的2個步驟:

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

因此,要回答你的問題,它並不完全是pack <folder>,而是調用相同的主要代碼路徑。

這裏的代碼大多寫得很好,並且不難遵循,我鼓勵您深入研究這類問題的這些項目的源代碼,因爲您對所用工具的知識將會爆炸。