考虑 Node.js 包管理器,即 npm - 我很好奇发布命令是否执行包发布之前的命令,或者它是否完全不同?所以,如果我要执行:
npm publish <folder>
首先执行以下操作:
npm pack <folder>
我无法找到documentation中提到的任何内容。
<小时/> 我对此感到好奇的主要原因是我们的构建过程只是在没有明确npm publish
之前的npm pack
进行,但是包看起来并没有预期的内容。即;当我对.tgz
的内容执行本地npm pack
时,npm publish
的内容会有所不同。
答案 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>