开发Meteor包时,我可以选择使用导出包内容
api.export('VariableName');
api.addFiles('main.js');
包中的相应变量必须“全局”声明以匹配此定义(在 main.js
中):
VariableName = { /* something... */ }
但是,这会导致 eslint 在使用此变量的每一行上抛出 no-undef
:
1:1 error 'VariableName' is not defined no-undef
....
141:1 error 'VariableName' is not defined no-undef
将 no-undef
切换为 off
是不可行的,因为它是 eslint 发现未使用变量的最强大工具之一。
如何在不关闭规则且不在变量前的每一行上放置异常的情况下抑制此错误?
编辑:
通过添加全局规则 /* global VariableName */
我将收到一个只读错误:
Read-only global 'VariableName' should not be modified no-global-assign
我忘了说,这个包导入了一个外部 npm 包,修改了它的一些功能以与 Meteor 的环境兼容,然后再次导出它。
所以代码实际上是:
VariableName = require('packageName');
最佳答案
您可以指定一些变量是全局变量,这将专门针对这些变量禁用此错误,但不会禁用任何其他变量。
例如,将以下代码放在出现此错误的文件的顶部:
/* global VariableName:true */
关于javascript - Meteor eslint 配置用于包开发与全局命名空间导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49347427/