Javascript monorepo中的自定义Eslint规则
我有一个带服务器和前端的monorepo。我想将一组自定义eslint规则合并到我的回购协议的前端组件中。我找不到方法告诉eslint在我的前端目录中的特定文件夹中有自定义规则。我不想为了导入规则而创建新的外部回购并发布它。到目前为止,我认为我想要的方法是在主repo中创建一个子包(使用自己的package.json) 在my root package.json中,我有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
“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,我宁愿将前端开发为一个包,因为我将只输出一个包。