2017-05-22 55 views
-2

几个项目在NPM分发包中包含它的源代码。例如,React在lib文件夹中包含其未分类/未建立的JavaScript文件,但它也包含具有构建文件的dist文件夹。我应该在npm发行版中包含我的项目源文件吗?

这是一个很好的做法吗?

在缺点上,我认为它会增加软件包下载和磁盘消耗的时间。 (这就是为什么我通常会将源代码文件夹添加到.npmignore文件中)

但是我问自己,为什么这么多的图书馆都这么做?哪些是优点?

回答

2

我不确定这个问题是否真的属于SO所问的问题,主要是因为它是基于意见的,可能更多是讨论。但这里是我的2美分反正:

我相信大多数这些库添加他们的源代码(部分是因为他们是开源的),以帮助调试目的。它们通常(但不总是)与.map文件捆绑在一起。 Conveniently there's a post that explains what a map file is.

如果你这样想:任何使用你的发行版的人都只需要“一次”安装它,因为他们可能不会在每次使用它时安装它,但只要他们要么干净地部署他们的项目,要么只是在他们安装它时。

另一件需要考虑的事情是:你的发行量有多大?它会真的真的这么大,它会减慢安装时间?

至于几乎任何现代机器几MB将会疏忽大意。

我个人认为包含源代码也是一种很好的做法,我喜欢知道库如何做他们做的事情,我喜欢能够选择查看为什么我的代码可能会导致库抛出错误。但我相信有很好的理由不如。

TL;博士

  • 他们这样做是为了帮助开发人员调试
  • 除非你真正的项目需要很长的时间来安装,不用担心它
  • 除非你的项目是超大,不用担心
  • 作为一个开发人员,我喜欢它,当项目包括它,但“良好的做法”颇有见地,这取决于情况
+0

帕特里克,对不起,如果我不遵守SO规则。 无论如何感谢您的回答,这正是我所期待的。 –

+0

@GustavoHuffenbacherDaud不用担心! StackExchange网络上有各种各样的地方,这是一个令人困惑的地方......如果我没有弄错[https://softwareengineering.stackexchange.com/](https://softwareengineering.stackexchange.com/)会是问这类问题的地方,如果你正在寻找一个更好,更彻底的答案,我建议在提及其他网站时询问它 –

+1

,指出[交叉发布被忽视]通常是有帮助的(https ://meta.stackexchange.com/tags/cross-posting/info) – gnat

相关问题