最近我见过一个库(react-3d-components),它有一些d3反应组件和一些基本图表可供使用。这是一组很酷的组件。
但是,当我想查看源代码时,因为文档还不完整,并且当您想要查看如何扩展组件时,例如,您发现自己正在查看代码的转换版本。不太好。我想看看源代码的人类可读版本。精细。通常包具有内置的源代码,因此您只需在IDE中找到该文件的人类可读版本。如果你很幸运,你有源图。但这里变得复杂了。
这个模块,在github中,有他完整的人类可读源代码,这是很好和正确的,并且,由于.npmignore文件,它只是发布文件的转换版本。当我看到这个时,我正要创建一个新问题,当我意识到这个人有一个观点:它通过不包装不必要的文件来减少包大小。但这适用于运行时,在开发时间(在我的计算机中)我想要整个源代码和源映射,因此我可以浏览代码并读取它。这也可能适用于某些资产。我认为这个包的某些开发版本会很好。
请参阅此处的忽略行: https://github.com/codesuki/react-d3-components/blob/master/.npmignore#L2
所以我想知道......当我创建一个库时,我该如何创建一个库?使用开发包版本和生产/默认版本? (例如mypackage-with-sources@1.0-dev)或者我应该将它留给IDE并使用一些插件,使用http以某种方式将源代码与repo页面集成在一起?或者npm有一个我不知道的官方支持? (我试图搜索它找不到任何东西)
我还阅读了这篇文章:Publish development version of NPM package
但它没有提供一个好的解决方案。最有说服力的是使用像alpha或beta这样的预发布标签,但这是不正确的。另一个解决方案建议安装github / vendor存储库,这可能是正确的,但对于开发目的而言是不合适的和不舒服的(更重要的是,并非总是可用,并非所有npm软件包都来自已知/可访问的http存储库)。
除了具体的答案之外,任何关于此的最佳实践(有理由)都会得到很好的接受。
由于
答案 0 :(得分:-1)
源应该是包的一部分,因为它们对开发很有用,并且包大小在运行时无关紧要:在节点中,节点只会加载实际需要的文件,在浏览器中合理的人使用仅捆绑所需文件的捆绑包(例如webpack)。
包的大小因此仅对包下载和存储有意义。由于npm的缓存,包下载很少发生,并且磁盘空间足够便宜,我们可以负担存储几MB的源代码,但我不会将架构图包含为图像,就像我曾经看过某个库一样做。
.npmignore的documentation也暗示.npmignore旨在排除临时文件(如.gitignore)。如果.npmignore打算排除源代码,那么npm文档会告诉你。