Javascript Eslint从另一个文件确定全局变量
我试图以这样一种方式设置ESLint,即它在lint实际目标文件之前解析globals声明文件,这样我就不必将所有确实是globals的函数和变量声明为globals,但让解析器明白: 在一些_module.js中:Javascript Eslint从另一个文件确定全局变量,javascript,eslint,Javascript,Eslint,我试图以这样一种方式设置ESLint,即它在lint实际目标文件之前解析globals声明文件,这样我就不必将所有确实是globals的函数和变量声明为globals,但让解析器明白: 在一些_module.js中: function do_something() { if (glob_action("foobar")) { ... something something ... } } 在globals.js中,我有一组实用程序和全局变量: function glob_ac
function do_something() {
if (glob_action("foobar")) {
... something something ...
}
}
在globals.js中,我有一组实用程序和全局变量:
function glob_action(x) {
... something something ...
}
那么,我如何告诉ESlint在确定以下事实时包括global.js:
76:3 error 'glob_action' is not defined no-undef
实际上不是未定义的,但我不想将其列为全局:
/*global glob_action*/
我想做一些类似的事情:
/*eslint include "../globa.js"*/
可能吗?如何操作?我强烈建议使用导入/导出机制,而不是让每个成员都可以全局访问 使用ES6模块时,您可以在globals.js中导出函数,如下所示:
export function glob_action(x) {
... something something ...
}
然后需要将其导入到some_module.js中才能使用它:
import { glob_action } from './globals.js';
// ...
function do_something() {
if (glob_action("foobar")) {
... something something ...
}
}
这样,eslint就不会抛出错误
您将需要在每个模块中导入要使用它们的资源,因此它不像您所要求的那样通用,但这样您就不会污染您的全局命名空间。
此外,您不需要手动导入每个函数,因为您可以使用以下方法导入整个模块:
import * as globals from './globals.js'
然后在文件中访问它们,如下所示:
globals.glob_action("foobar");
请参阅:有关从其他模块导入成员的详细信息。您是否考虑过在一个列表中指定它们?显然是的,但这样我必须维护两个全局列表。我不想成为维护支持文件的奴隶。相关问题: