Javascript 为什么不';难道我不需要把“反:假”导入我的流星源文件吗?
我见过一些类似的问题,但似乎没有一个适用于我的情况 我正在创建一个Meteor项目,并使用大气包“anti:fake”生成测试数据 对于任何其他包,我必须导入它。即使是流星本身,我也必须从'Meteor/Meteor'导入{Meteor}代码>。对于其他类似的Atmosphere包,例如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,我也看不到任何可以正常工作的导入
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
对象在客户端和服务器上都可用。不需要导入语句(因为它们位于全局命名空间中)
有关更多信息,请参阅文档