npm publish是否执行npm pack操作?

14

考虑到Node.js包管理器,即npm——我想知道publish命令是否在发布之前执行pack命令,还是完全执行不同的操作?因此,如果我执行以下命令:

npm publish <folder>

它是否首先执行以下操作:

npm pack <folder>

我无法在文档中找到任何提及的内容。


我好奇的主要原因是,我们的构建过程只是直接执行npm publish而没有显式地先执行npm pack,但是包似乎没有期望的内容。例如:当我执行本地的npm pack时,.tgz的内容与npm publish的不同。


你有什么不同之处? - yrtimiD
1个回答

3

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

https://github.com/npm/npm/blob/b80d650def417645d2525863e9f17af57a917b42/lib/publish.js#L79https://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>,但会调用相同的主要代码路径。
那里的代码大多写得很好,不难理解。我鼓励你深入挖掘这些项目的源代码,因为如果这样做,你对所使用的工具的了解将会大大增加。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接