Javascript 我应该在npm发行版中包含我的项目源文件吗?

Javascript 我应该在npm发行版中包含我的项目源文件吗?,javascript,npm,Javascript,Npm,有几个项目将其源代码包含在NPM分发包包包中。例如,React在lib文件夹中包含其未统一/未构建的javascript文件,但它也有一个包含构建文件的dist文件夹 这是一种好的做法吗 在缺点方面,我认为这会增加下载包所需的时间和磁盘消耗。 (这就是我通常将源代码文件夹添加到.npmignore文件的原因) 但我问自己,为什么这么多图书馆这么做?优点是什么?我不确定这个问题是否真的属于这里提出的问题,主要是因为它是基于观点的,可能更像是一个讨论。但这是我的2美分: 我相信这些库中的大多数都添加

有几个项目将其源代码包含在NPM分发包包包中。例如,React在
lib
文件夹中包含其未统一/未构建的javascript文件,但它也有一个包含构建文件的
dist
文件夹

这是一种好的做法吗

在缺点方面,我认为这会增加下载包所需的时间和磁盘消耗。 (这就是我通常将源代码文件夹添加到
.npmignore
文件的原因)


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

我不确定这个问题是否真的属于这里提出的问题,主要是因为它是基于观点的,可能更像是一个讨论。但这是我的2美分:

我相信这些库中的大多数都添加了源代码(部分是因为它们是开源的),以帮助调试。它们通常(但不总是)与.map文件捆绑在一起

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

另一个需要考虑的问题是:你们的发行量有多大?它真的会如此之大以致于它会减慢安装时间吗

至于空间,在几乎任何现代机器上,几MB的空间都会被忽略

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

tl;dr

  • 他们这样做是为了帮助开发人员进行调试
  • 除非你的项目真的需要很长时间才能安装,否则别担心
  • 除非你的项目超大型,否则别担心
  • 作为一名开发人员,当项目中包含它时,我喜欢它,但“良好实践”是相当固执己见的,这取决于具体情况

我不确定这个问题是否真的属于这里提出的问题,主要是因为它是基于观点的,可能更像是一场讨论。但这是我的2美分:

我相信这些库中的大多数都添加了源代码(部分是因为它们是开源的),以帮助调试。它们通常(但不总是)与.map文件捆绑在一起

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

另一个需要考虑的问题是:你们的发行量有多大?它真的会如此之大以致于它会减慢安装时间吗

至于空间,在几乎任何现代机器上,几MB的空间都会被忽略

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

tl;dr

  • 他们这样做是为了帮助开发人员进行调试
  • 除非你的项目真的需要很长时间才能安装,否则别担心
  • 除非你的项目超大型,否则别担心
  • 作为一名开发人员,当项目中包含它时,我喜欢它,但“良好实践”是相当固执己见的,这取决于具体情况

Patrick,很抱歉我没有遵守SO规则。无论如何,谢谢你的回答,这正是我想要的。@GustavoHuffenbacherDaud别担心!StackExchange网络上有很多不同的地方,这是一个令人困惑的地方。。。如果我没弄错的话,我会问这类问题,如果你想找一个更好、更彻底的答案,我建议在参考其他网站时问这个问题,帕特里克,如果我没有遵守SO规则,很抱歉,这通常是有帮助的。无论如何,谢谢你的回答,这正是我想要的。@GustavoHuffenbacherDaud别担心!StackExchange网络上有很多不同的地方,这是一个令人困惑的地方。。。如果我没有弄错的话,我会问这种类型的问题,如果你在寻找更好、更彻底的答案,我建议在参考其他网站时在那里问,指出这一点通常是有帮助的