NPM 包中 src 和 dist 文件夹的作用

Role of the src and dist folders in NPM packages

我正在使用 Restangular for HTTP requests. I want to use the method customPATCH. I can see it in the Restangular src/ directory here

然而,当我 运行 'npm install restangular' 并指向 dist/ 文件夹时,出现错误 "customPATCH is not a function"。我注意到 dist/ 文件夹中的 source code 与 src/ 文件夹中的内容不同(它没有定义 customPATCH 方法)。

为什么 NPM 包的 src/ 和 dist/ 中的内容会有所不同?这些通常保持同步吗?在这种情况下,dist/ 目录已经 8 个月没有更新了。我应该只使用 src/ 文件夹中的源代码吗?也许我误解了如何使用 NPM 包(我总是使用 dist/ 文件夹中的源代码)...

通常 src 包含源代码和缩小和其他更改后的 dist 代码(无论如何,派生代码 - Java 世界中的 target)。

有时当主仓库是用 EcmaScript6 或更新版本编写时,dist 文件夹包含转译为 EcmaScript5 的代码以支持旧版本的 nodejs/旧浏览器。

您可以使用 src 中的代码,如果它适合您 - 但是通常 dist 中的代码会被缩小,因此速度更快。

但有时作者会忘记更新 dist 文件夹,然后您可能会有差异。您可以 ping 作者以重建 dist 文件夹。

src/dist/ 是大多数包的通用命名约定。在大多数情况下,开发人员拥有他们正在处理的代码 src/ 以及他们希望其他人使用的代码的分发版本 dist/。大多数开发人员,包括我自己,都会将他们的代码编译、缩小或连接到面向生产的代码版本中。他们通常将 src/ 文件包含在他们的 public 存储库中,以便人们可以查看源代码并根据需要对其进行修改。

tdlr;

src/是开发人员正在使用的代码。

dist/ 是经过修改的分发版本,可以为不想修改代码工作方式的用户提供更好的性能。