是否需要导入才能运行Meteor应用程序

时间:2016-08-28 17:03:44

标签: javascript meteor

此Meteor模板代码是在调用meteor create myApp时生成的默认代码。在main.js中,前3行是:

import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
import './main.html';

但是当我发表评论时,该应用程序仍在运行。阅读docs无法回答我的问题,如果应用程序在没有它们的情况下运行,为什么我们需要import语句?感谢

1 个答案:

答案 0 :(得分:1)

早期版本的Meteor严重依赖于使用全局命名空间来访问共享库。从Meteor 1.3开始,您现在可以使用Meteor's ES2015 module支持。这意味着您可以使用导入/导出功能来公开对代码库各个部分的访问,而不必依赖全局变量。现在,使用导入/导出是引用应用程序部分的首选/推荐方式,因此更新了meteor create功能以证明这一点。如您所述,您可以删除上面的import语句,您仍然可以全局访问TemplateReactiveVar(以便向后兼容)。值得注意的是,未来可能会发生变化 - Meteor完全接受了ES2015模块的支持,并且可能完全放弃使用全局变量(尽可能地)。

还有一点需要注意 - Meteor 1.3还引入了新的“延迟加载”功能,其中存储在/imports目录下的应用程序代码将不再在应用程序启动时急切加载。存储在/imports目录下的代码只有在代码库中其他位置的import语句引用时才会被加载。有关详细信息,请参阅Special directories