Javascript 为什么不';难道我不需要把“反:假”导入我的流星源文件吗?

Javascript 为什么不';难道我不需要把“反:假”导入我的流星源文件吗?,javascript,meteor,typescript,import,atmosphere.js,Javascript,Meteor,Typescript,Import,Atmosphere.js,我见过一些类似的问题,但似乎没有一个适用于我的情况 我正在创建一个Meteor项目,并使用大气包“anti:fake”生成测试数据 对于任何其他包,我必须导入它。即使是流星本身,我也必须从'Meteor/Meteor'导入{Meteor}。对于其他类似的Atmosphere包,例如publishcounts我还必须从'meteor/tmeasday:publishcounts'中编写一行类似于import{counts}。。。此外,即使我想导入anti:fake,我也看不到任何可以正常工作的导入

我见过一些类似的问题,但似乎没有一个适用于我的情况

我正在创建一个Meteor项目,并使用大气包“anti:fake”生成测试数据

对于任何其他包,我必须导入它。即使是流星本身,我也必须从'Meteor/Meteor'导入{Meteor}。对于其他类似的Atmosphere包,例如
publishcounts
我还必须从'meteor/tmeasday:publishcounts'中编写一行类似于
import{counts}。。。此外,即使我想导入
anti:fake
,我也看不到任何可以正常工作的导入名称。它们在
文件中以相同的方式列出,并以相同的方式添加到我的项目中,因此从表面上看,它们看起来都一样

这一切都不重要,因为我可以神奇地使用一个名为
Fake
的对象,但我真的不明白为什么会这样,以及我将来如何知道需要显式导入什么和隐式导入什么


谢谢

Meteor 1.3引入了ES2015模块,但是为了保持向后兼容性,Meteor仍然保留了为您导入
anti:fake
包的“急切加载”行为,将其绑定到全局变量
fake

从“Meteor/Meteor”导入{Meteor}
实际上不是出于同样的原因需要的,但强烈建议将其作为最佳实践(如果将来的版本通过删除渴望的加载而放弃了这种向后兼容性,则可能有必要这样做)

如果您查找针对Meteor 1.3或更高版本的较新教程,您将看到大多数代码都放在
/imports
目录中,因为Meteor构建工具对这一点的处理方式不同,并且其中的所有代码都不是“急切加载”的。此目录中的所有代码都必须显式导入,这与模块名称空间和避免旧的文件加载顺序问题一起,使您能够更清楚地了解应用程序中正在运行的代码(不那么神奇!)

Meteor 1.3中还包括对NPM包的支持,它们为您提供了使用atmosphere包的替代方案,这种方式包含的包也需要显式导入到您的应用程序中

<>你可以考虑使用.< /P> 然而,如果某些东西对你有效,你不觉得你必须改变,但希望这能帮助你理解为什么它有效

您确定
publish counts
需要导入语句吗?查看此包的示例,可以看到这两行

  api.export('Counts');
  api.export('publishCount', 'server');
这使得导入此包的应用程序(或包)中的服务器上可用
publishCount
对象,而
Counts
对象在客户端和服务器上都可用。不需要导入语句(因为它们位于全局命名空间中)

有关更多信息,请参阅文档