流星:导入流星包时导入语句重要吗?

Fer*_*rti 2 meteor

所以我创建了一个空的 Meteor 应用程序。其中一个文件 server/main.js 如下所示:

import { Meteor } from 'meteor/meteor';

Meteor.startup(() => {
  // code to run on server at startup
  console.log('hello from the server');
});
Run Code Online (Sandbox Code Playgroud)

我试过注释掉上面的导入语句,代码仍然运行。那么,导入流星全局变量时导入语句是否只是为了更容易查看变量的来源?如果我包含该 import 语句,它在行为上有什么不同吗?

cha*_*olo 5

简短的回答:是的……也不是。

来自有关导入 Meteor 全局变量Meteor 指南:(强调我的)

为了向后兼容,Meteor 1.3 仍然为 Meteor 核心包以及您在应用程序中包含的其他 Meteor 包提供 Meteor 的全局命名空间。您还可以直接调用 Meteor.publish 等函数,就像在 Meteor 的早期版本中一样,而无需先导入它们。但是,建议的最佳实践是在使用它们之前首先使用 import { Name } from 'meteor/package' 语法加载所有 Meteor “伪全局变量”。例如:

import { Meteor } from 'meteor/meteor';
import { EJSON } from 'meteor/ejson';
Run Code Online (Sandbox Code Playgroud)

正如他们所说,这是一种最佳实践,正如您所见,删除导入并没有破坏您的代码。但是,正如您所提到的,有一些好处:

  • 您可以一目了然地知道文件中正在使用哪些全局变量
  • 一些 IDE 可以准确地链接回源文件中的导出对象。

这两个是我能想到的两个,我觉得在我与 Meteor 的日常工作中很有价值。