我有一个带有服务器和前端的monorepo。我想将一组自定义eslint规则合并到我的仓库的前端组件中。我找不到告诉eslint前端目录中特定文件夹中有自定义规则的方法。我不想创建一个新的外部仓库并发布它以导入规则。到目前为止,我认为要执行的操作方法是在主存储库中创建一个子包(具有自己的package.json)。
在我的根package.json中,我有"eslint-plugin-atlas": "file:./src/main/javascript/build/eslint",
在我的根目录.eslintrc中,我有"plugin:atlas/recommended"
在package.json中指定的目录中,在index.js中,我具有以下代码;
'use strict';
module.exports = {
rules: {
'tsx-qualified-class-state-definition': {
meta: {
docs: {
description: 'A test rule',
category: 'Best Practices',
recommended: true,
},
},
create: function(context) {
console.log(context, 'THIS HAS BEEN HIT');
return {};
},
},
},
configs: {
recommended: {
rules: {
'tsx-qualified-class-state-definition': 'error',
},
},
},
};
显然,上面的lint规则不会产生适当的掉毛,但是我希望看到console语句能够输出。当我的intellij IDE尝试读取配置时,出现错误;
Error: Failed to load config "plugin:atlas/recommended" to extend from.
Referenced from: F:\dev\workspace\lepton\src\main\javascript\build\.eslintrc.json
at configMissingError (F:\dev\workspace\lepton\node_modules\eslint\lib\cli-engine\config-array-factory.js:233:9)
at ConfigArrayFactory._loadExtendedPluginConfig (F:\dev\workspace\lepton\node_modules\eslint\lib\cli-engine\config-array-factory.js:674:31)
at ConfigArrayFactory._loadExtends (F:\dev\workspace\lepton\node_modules\eslint\lib\cli-engine\config-array-factory.js:607:29)
at ConfigArrayFactory._normalizeObjectConfigDataBody (F:\dev\workspace\lepton\node_modules\eslint\lib\cli-engine\config-array-factory.js:545:25)
at _normalizeObjectConfigDataBody.next (<anonymous>)
at ConfigArrayFactory._normalizeObjectConfigData (F:\dev\workspace\lepton\node_modules\eslint\lib\cli-engine\config-array-factory.js:491:20)
at _normalizeObjectConfigData.next (<anonymous>)
at createConfigArray (F:\dev\workspace\lepton\node_modules\eslint\lib\cli-engine\config-array-factory.js:307:25)
at ConfigArrayFactory.loadFile (F:\dev\workspace\lepton\node_modules\eslint\lib\cli-engine\config-array-factory.js:382:16)
at createCLIConfigArray (F:\dev\workspace\lepton\node_modules\eslint\lib\cli-engine\cascading-config-array-factory.js:140:35)
运行eslint时出现错误Definition for rule 'tsx-qualified-class-state-definition' was not found tsx-qualified-class-state-definition
答案 0 :(得分:0)
不是eslint内置的解决方案,但是可以使用以下eslint插件来完成;
答案 1 :(得分:0)
如果我错了,请纠正我,但是这不是一种反模式吗?我认为您应该在每个软件包目录中都有配置。
/
- package.json
/packages
/pkg-1
- .eslintrc.json
/pkg-2
- .eslintrc.json
有关更多信息,请参见here,这是一篇更广泛的文章,但应该为您提供一些指导。