主meteor项目目录中的包和相同代码之间的性能差异

主meteor项目目录中的包和相同代码之间的性能差异,meteor,meteorite,Meteor,Meteorite,我已经完成了Discover Meteor应用程序,我有一个关于加载包的幕后性能的问题。更准确地说,本教程使用户首先在主meteor项目中创建错误处理功能,然后使用代码模块创建错误包 除了拥有一个包的明显优势之外,还有一个具体的原因,为什么我们应该创建一个包而不是在项目中简单地拥有一个包?在加载包的方式上有任何性能差异和优势吗?我应该知道有什么缺点吗 我可以将问题归结为,与主项目文件夹中的相同代码相比,包是否具有更好的性能?创建包并不会从本质上给您带来性能优势-代码被缩小并插入到与应用程序其余部

我已经完成了Discover Meteor应用程序,我有一个关于加载包的幕后性能的问题。更准确地说,本教程使用户首先在主meteor项目中创建错误处理功能,然后使用代码模块创建错误包

除了拥有一个包的明显优势之外,还有一个具体的原因,为什么我们应该创建一个包而不是在项目中简单地拥有一个包?在加载包的方式上有任何性能差异和优势吗?我应该知道有什么缺点吗


我可以将问题归结为,与主项目文件夹中的相同代码相比,包是否具有更好的性能?

创建包并不会从本质上给您带来性能优势-代码被缩小并插入到与应用程序其余部分相同的包中。主要优势是:

  • 正如您所指出的,它使代码可重用。即使它只是一个工具,你仍然可以在你自己的项目之间使用它。或者,如果它是你可以与他人分享的东西,你可以将它发布在网站上,让社区的其他人受益

  • 您可以更好地控制应用程序中依赖项和文件的加载顺序。社区中的一些成员将这一想法推向了极端,他们使用所见和所见的软件包构建了整个应用程序

  • 你可以用

除了编写和维护
package.js
文件(它列出了依赖项、文件加载顺序等)的认知开销之外,我想不出还有什么明显的缺点。还要注意的是,1.0版的软件包系统正在开发中,因此请注意,在未来几个月内,某些方面将发生变化

在工作中,我们喜欢将独立的工具(如文本生成器和与我们的邮件提供商交互的lib)纳入包中,即使它们不能在应用程序中重用,因为:

  • 它使我们的应用程序代码库更小

  • 它将git历史记录分开

  • 它有助于实施清晰的关注点分离


这可能不是一个详尽的列表,但它应该能让您了解包创建和使用背后的动机。

谢谢您的回答,它非常具有解释性。我还看了你链接的本地包博客帖子。谢谢你提供的有用信息。