npm发布是否执行npm包

Dav*_*ine 11 node.js npm npm-publish

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

npm publish <folder>
Run Code Online (Sandbox Code Playgroud)

它首先执行以下操作:

npm pack <folder>
Run Code Online (Sandbox Code Playgroud)

我无法找到文档中提到的任何内容.


主要的原因我很好奇这是我们的构建过程仅仅是做npm publish没有明确npm pack之前,但不包出现有预期的内容.即; 的内容.tgz,当我执行本地不同npm pack到的内容npm publish.

maj*_*ann 3

查看 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函数执行相同的 2 个步骤:

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

因此,为了回答您的问题,它并不完全相同pack <folder>,但确实调用了相同的主要代码路径。

那里的代码大多写得很好并且不难理解,我鼓励您针对此类问题深入研究这些项目的源代码,因为如果您这样做,您对所使用的工具的了解将会爆炸。