node.js - npm publish 是否执行 npm 包

标签 node.js npm npm-publish

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

npm publish <folder>

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

npm pack <folder>

我找不到 documentation 中提到的任何内容.


我对此感到好奇的主要原因是我们的构建过程只是在没有明确的 npm pack 之前执行 npm publish,但包似乎没有预期的内容。 IE。;当我执行本地 npm packnpm publish 的内容时,.tgz 的内容不同。

最佳答案

查看 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>但确实调用了相同的主要代码路径。

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

关于node.js - npm publish 是否执行 npm 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37212121/

相关文章:

reactjs - 发布到 npm 时出现问题

gitlab - 将 NPM 包发布到 GitLab 包注册表

node.js - Node 容器无法使用 docker for windows 运行

node.js - req.params 返回未定义

node.js - 在 npm 脚本中将 shell 环境变量作为参数传递

node.js - npm require 的问题

npm - 免费发布范围内的 npm 包?

javascript - 为什么我的代码在写入文件时收到未定义的信息?

node.js - 你如何在 Webstorm 中设置 Jade file watcher?

javascript - 收到 package.json 的解析错误。验证为有效 json