我不太擅长设置自定义 npm 包,因此我寻求帮助。我正在尝试在另一个项目上测试我的自定义 ESLint 插件规则。为此,我在一个根目录中设置了两个项目并使用文件链接选项将它们链接起来(找到所附文件结构的图像):
"eslint-plugin-winniepukki-guidelines": "file:../guide"
.eslintrc
项目上的配置文件,我想在其中使用我的自定义 ESLint 插件:
module.exports = {
env: {
browser: true,
es2021: true,
},
extends: [
'airbnb-base',
],
parserOptions: {
ecmaVersion: 12,
sourceType: 'module',
},
plugins: [
'winniepukki-guidelines',
],
rules: {
'winniepukki-guidelines/use-license': 'error',
'winniepukki-guidelines/avoid-names': 'error',
},
};
不幸的是,规则没有正确应用,出现以下错误:
Definition for rule 'winniepukki-guidelines/avoid-names' was not found.eslint(winniepukki-guidelines/avoid-names)
。 avoid-names.js
文件如下所示:
module.exports = {
meta: {
messages: {
avoidName: "Avoid using variables named '{{ name }}'"
}
},
create(context) {
return {
Identifier(node) {
if (node.name === "foo") {
context.report({
node,
messageId: "avoidName",
data: {
name: "foo",
}
});
}
}
};
}
};
这是 ESLint 包的 index.js
文件本身,说明了如何导出它们:
const path = require('path');
const requireIndex = require('requireindex');
module.exports.rules = requireIndex(path.join(__dirname, 'rules'));