npm发布是否执行npm包

时间:2016-05-13 14:05:39

标签: node.js npm npm-publish

考虑 Node.js 包管理器,即 npm - 我很好奇发布命令是否执行发布之前的命令,或者它是否完全不同?所以,如果我要执行:

npm publish <folder>

首先执行以下操作:

npm pack <folder>

我无法找到documentation中提到的任何内容。

<小时/> 我对此感到好奇的主要原因是我们的构建过程只是在没有明确npm publish之前的npm pack进行,但是包看起来并没有预期的内容。即;当我对.tgz的内容执行本地npm pack时,npm publish的内容会有所不同。

1 个答案:

答案 0 :(得分:1)

查看NPM源,您可以看到它到达publishFromDirectory函数,并调用pack模块。

https://github.com/npm/npm/blob/b80d650def417645d2525863e9f17af57a917b42/lib/publish.js#L79再来一次 https://github.com/npm/npm/blob/b80d650def417645d2525863e9f17af57a917b42/lib/publish.js#L88

如果您进入pack模块,您可以看到_pack函数执行相同的两个步骤:

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

因此,要回答您的问题,它并不完全正确pack <folder>,而是会调用相同的主要代码路径。

那里的代码大多写得很好而且不难理解,我鼓励你深入研究这些类型问题的源代码,因为如果你这样做,你所使用的工具的知识就会爆炸。< / p>