几个项目在NPM分发包中包含它的源代码。例如,React在lib
文件夹中包含其未分类/未建立的JavaScript文件,但它也包含具有构建文件的dist
文件夹。我应该在npm发行版中包含我的项目源文件吗?
这是一个很好的做法吗?
在缺点上,我认为它会增加软件包下载和磁盘消耗的时间。 (这就是为什么我通常会将源代码文件夹添加到.npmignore
文件中)
但是我问自己,为什么这么多的图书馆都这么做?哪些是优点?
几个项目在NPM分发包中包含它的源代码。例如,React在lib
文件夹中包含其未分类/未建立的JavaScript文件,但它也包含具有构建文件的dist
文件夹。我应该在npm发行版中包含我的项目源文件吗?
这是一个很好的做法吗?
在缺点上,我认为它会增加软件包下载和磁盘消耗的时间。 (这就是为什么我通常会将源代码文件夹添加到.npmignore
文件中)
但是我问自己,为什么这么多的图书馆都这么做?哪些是优点?
我不确定这个问题是否真的属于SO所问的问题,主要是因为它是基于意见的,可能更多是讨论。但这里是我的2美分反正:
我相信大多数这些库添加他们的源代码(部分是因为他们是开源的),以帮助调试目的。它们通常(但不总是)与.map文件捆绑在一起。 Conveniently there's a post that explains what a map file is.。
如果你这样想:任何使用你的发行版的人都只需要“一次”安装它,因为他们可能不会在每次使用它时安装它,但只要他们要么干净地部署他们的项目,要么只是在他们安装它时。
另一件需要考虑的事情是:你的发行量有多大?它会真的真的这么大,它会减慢安装时间?
至于几乎任何现代机器几MB将会疏忽大意。
我个人认为包含源代码也是一种很好的做法,我喜欢知道库如何做他们做的事情,我喜欢能够选择查看为什么我的代码可能会导致库抛出错误。但我相信有很好的理由不如。
TL;博士
帕特里克,对不起,如果我不遵守SO规则。 无论如何感谢您的回答,这正是我所期待的。 –
@GustavoHuffenbacherDaud不用担心! StackExchange网络上有各种各样的地方,这是一个令人困惑的地方......如果我没有弄错[https://softwareengineering.stackexchange.com/](https://softwareengineering.stackexchange.com/)会是问这类问题的地方,如果你正在寻找一个更好,更彻底的答案,我建议在提及其他网站时询问它 –
,指出[交叉发布被忽视]通常是有帮助的(https ://meta.stackexchange.com/tags/cross-posting/info) – gnat