Meteor eslint 配置用于包开发和全局命名空间导出

Meteor eslint config for package development with globale namespace export

在开发 Meteor 包时,我可以选择使用

导出包内容
api.export('VariableName');
api.addFiles('main.js');

必须声明包中的相应变量 "globally" 以匹配此定义(在 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');

您可以指定一些变量是全局变量,这将专门针对这些变量禁用此错误,但不会禁用任何其他变量。

Link to documentation

例如将以下代码放在您遇到此错误的文件的顶部:

/* global VariableName:true */