Joh*_*nny 10 javascript eslint
我试图以这样一种方式设置ESLint,它在linting实际目标文件之前解析全局声明文件,这样我就不必将所有函数和变量声明为全局变量,而是将全局变量声明为全局变量.解析器数字出来:
在some_module.js中:
function do_something() {
if (glob_action("foobar")) {
... something something ...
}
}
Run Code Online (Sandbox Code Playgroud)
在globals.js中,我有一组实用程序和全局变量:
function glob_action(x) {
... something something ...
}
Run Code Online (Sandbox Code Playgroud)
那么我如何告诉ESlint在确定以下事实时包含global.js:
76:3 error 'glob_action' is not defined no-undef
Run Code Online (Sandbox Code Playgroud)
实际上并没有未定义,但我不想将其列为全局:
/*global glob_action*/
Run Code Online (Sandbox Code Playgroud)
我想做的事情如下:
/*eslint include "../globa.js"*/
Run Code Online (Sandbox Code Playgroud)
可能吗?怎么样?
小智 1
我强烈建议使用导入/导出机制,而不是让每个成员都全局可访问。
使用 ES6 模块时,您可以在globals.js中导出函数,如下所示:
export function glob_action(x) {
... something something ...
}
Run Code Online (Sandbox Code Playgroud)
然后,您需要将其导入到some_module.js中才能使用它:
import { glob_action } from './globals.js';
// ...
function do_something() {
if (glob_action("foobar")) {
... something something ...
}
}
Run Code Online (Sandbox Code Playgroud)
这样 eslint 就不会抛出错误。
您将需要在要使用它们的每个模块中导入资源,因此它并不像您请求的那样通用,但这样您就不会污染您的全局名称空间。此外,您不需要手动导入每个函数,因为您可以使用以下命令导入整个模块:
import * as globals from './globals.js'
Run Code Online (Sandbox Code Playgroud)
然后在您的文件中访问它们,如下所示:
globals.glob_action("foobar");
Run Code Online (Sandbox Code Playgroud)
有关从其他模块导入成员的更多信息,请参阅:https ://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/import。