Javascript monorepo中的自定义Eslint规则

Javascript monorepo中的自定义Eslint规则,javascript,eslint,Javascript,Eslint,我有一个带服务器和前端的monorepo。我想将一组自定义eslint规则合并到我的回购协议的前端组件中。我找不到方法告诉eslint在我的前端目录中的特定文件夹中有自定义规则。我不想为了导入规则而创建新的外部回购并发布它。到目前为止,我认为我想要的方法是在主repo中创建一个子包(使用自己的package.json) 在my root package.json中,我有“eslint插件图集”:“文件:./src/main/javascript/build/eslint”, 在我的root.es

我有一个带服务器和前端的monorepo。我想将一组自定义eslint规则合并到我的回购协议的前端组件中。我找不到方法告诉eslint在我的前端目录中的特定文件夹中有自定义规则。我不想为了导入规则而创建新的外部回购并发布它。到目前为止,我认为我想要的方法是在主repo中创建一个子包(使用自己的package.json)

在my root package.json中,我有
“eslint插件图集”:“文件:./src/main/javascript/build/eslint”,

在我的root.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规则不会产生适当的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)
错误:未能加载要从中扩展的配置“plugin:atlas/recommended”。
引用自:F:\dev\workspace\lepton\src\main\javascript\build\.eslintrc.json
在configMissingError(F:\dev\workspace\lepton\node\u modules\eslint\lib\cli engine\config array factory.js:233:9)
在ConfigArrayFactory。加载ExtendedPluginConfig(F:\dev\workspace\lepton\node\u modules\eslint\lib\cli engine\config array factory.js:674:31)
在ConfigArrayFactory上。加载扩展(F:\dev\workspace\lepton\node\u modules\eslint\lib\cli engine\config array factory.js:607:29)
在ConfigArrayFactory.\u normalizeObjectConfigDataBody(F:\dev\workspace\lepton\node\u modules\eslint\lib\cli engine\config array factory.js:545:25)
在_normalizeObjectConfigDataBody.next()处
在ConfigArrayFactory.\u normalizeObjectConfigData(F:\dev\workspace\lepton\node\u modules\eslint\lib\cli engine\config array factory.js:491:20)
在_normalizeObjectConfigData.next()
在createConfigArray(F:\dev\workspace\lepton\node\u modules\eslint\lib\cli engine\config array factory.js:307:25)
在ConfigArrayFactory.loadFile(F:\dev\workspace\lepton\node\u modules\eslint\lib\cli engine\config array factory.js:382:16)
在createCLIConfigArray(F:\dev\workspace\lepton\node\u modules\eslint\lib\cli engine\cascading config array factory.js:140:35)

运行eslint时,未找到规则“tsx限定类状态定义”的错误定义。tsx限定类状态定义不是eslint内置的解决方案,但这可以通过以下eslint插件完成


如果我错了,请纠正我,但这不是一种反模式吗?我认为每个包目录中都应该有配置

/
 - package.json
   /packages
       /pkg-1
         - .eslintrc.json
       /pkg-2
         - .eslintrc.json

查看更多信息,有点像一篇更广泛的文章,但应该会给你一些指导

我正在处理前端的一个javascript包。后端是用Java编写的——是的,monorepo既有Java也有javascript!我不想为了两个包而介绍lerna,我宁愿将前端开发为一个包,因为我将只输出一个包。