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

14

我正在使用Restangular进行HTTP请求。我想要使用customPATCH方法。我可以在Restangular的src/目录这里看到它。

然而,当我运行“npm install restangular”,并指向dist/文件夹时,我得到了错误“customPATCH不是一个函数”。我注意到dist/文件夹中的源代码与src/文件夹中的不同(它没有定义customPATCH方法)。

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

2个回答

19

src/dist/ 是大多数包常用的命名约定。在大多数情况下,开发人员将他们正在工作的代码放在 src/ 目录中,而将他们希望其他人使用的分发版本的代码放在 dist/ 目录中。大多数开发人员(包括我自己)会将代码编译、压缩或合并成面向生产环境的版本。通常,他们会将 src/ 文件包含在其公共存储库中,以便人们可以查看源代码并根据需要进行修改。

简短概括:

src/ 存放开发人员正在工作的代码。

dist/ 存放已经优化过的分发版本的代码,不需要修改代码就能更好地运行。


1
你可能是想说_de_contaminate。 - Stephan Bijzitter
1
提交 dist 文件夹是否常见且值得推荐? - Jared Beck
2
@JaredBeck 说实话,这取决于项目。如果你希望人们自己在项目上工作,那么我不会提交 dist,因为他们应该使用你所拥有的任何构建流程来构建这些文件。如果这是一种项目类型,你想让高级人员贡献,并且希望新手只需获得最终结果并使用它而无需烦恼构建项目,则在你的存储库中包含 dist 文件夹。 - DominicValenciana

6
通常情况下,src 包含源代码,而 dist 包含经过缩小和其他更改后的代码(无论如何,这是派生代码 - 在 Java 世界中将是 target)。
有时,当主要存储库使用 EcmaScript6 或更新版本时,dist 文件夹包含转换为 EcmaScript5 的代码,以支持旧版 nodejs / 旧版浏览器。
如果 src 中的代码适用于您,则可以使用它 - 但通常 dist 中的代码经过缩小,因此更快。
但有时作者会忘记更新 dist 文件夹,这时您可能会遇到不一致的情况。您可以联系作者重建 dist 文件夹。

“target” 不是 Java 世界,而是 Maven/Gradle 世界,它们被广泛应用于 Java 项目中。 - Janos Vinceller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接