【问题标题】:Role of the src and dist folders in NPM packagesNPM 包中 src 和 dist 文件夹的作用
【发布时间】:2017-02-05 08:28:17
【问题描述】:

我使用Restangular 处理 HTTP 请求。我想使用方法customPATCH。我可以在 Restangular src/ 目录here 中看到它。

但是,当我运行“npm install restangular”并指向 dist/ 文件夹时,我收到错误“customPATCH 不是函数”。我注意到 dist/ 文件夹中的 source code 与 src/ 文件夹中的不同(它没有定义 customPATCH 方法)。

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

【问题讨论】:

    标签: javascript github restangular


    【解决方案1】:

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

    tdlr;

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

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

    【讨论】:

    • 你的意思可能是_de_contaminate。
    • 提交dist文件夹是否常见和/或推荐?
    • @JaredBeck 老实说,这取决于项目。如果您希望人们自己从事该项目,那么我不会提交dist,因为预计他们会使用您拥有的任何构建过程自己构建这些文件。如果这是您希望高级人员贡献的项目类型,并且您希望新手只需获得最终结果并使用它而无需构建项目的麻烦,那么在您的存储库中包含您的 dist 文件夹。
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-07-07
      • 1970-01-01
      • 2018-07-23
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 2018-12-04
      • 2021-01-21
      相关资源
      最近更新 更多