考虑到Node.js包管理器,即npm - 我很好奇发布命令是在发布之前执行打包命令,还是完全不同?所以如果我要执行:
npm publish <folder>
它是否首先执行以下操作:
npm pack <folder>
我找不到文档中提到的任何内容。
我对此感到好奇的主要原因是我们的构建过程只是在
npm publish
没有明确的npm pack
先验的情况下进行,但包似乎没有预期的内容。IE; 当.tgz
我npm pack
对npm publish
.
考虑到Node.js包管理器,即npm - 我很好奇发布命令是在发布之前执行打包命令,还是完全不同?所以如果我要执行:
npm publish <folder>
它是否首先执行以下操作:
npm pack <folder>
我找不到文档中提到的任何内容。
npm publish
没有明确的npm pack
先验的情况下进行,但包似乎没有预期的内容。IE; 当.tgz
我npm pack
对npm publish
.
查看 NPM 源代码,您可以看到它到达了 publishFromDirectory 函数,并调用了 pack 模块。
https://github.com/npm/npm/blob/b80d650def417645d2525863e9f17af57a917b42/lib/publish.js#L79并再次在 https://github.com/npm/npm/blob/b80d650def417645d2525863e9f17af57a917b42/lib/publish.js#L79
如果您继续进入 pack 模块,您可以看到该_pack
函数执行相同的 2 个步骤:
https://github.com/npm/npm/blob/114d518c75732c42acbef3acab36ba1d0fd724e2/lib/pack.js#L67
因此,要回答您的问题,它并不完全正确pack <folder>
,但确实调用了相同的主要代码路径。
那里的代码大部分都写得很好并且不难理解,我鼓励您针对此类问题深入研究这些项目的源代码,因为如果您这样做,您对所使用工具的知识将会爆炸。