Forking core eslint rules(分叉核心斜射规则)
本文介绍了分叉核心斜射规则的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想对核心eslint规则进行一些次要的编辑,例如array-bracket-newline
或indent
。这些规则通常依赖于eslint
中的实用程序,最常见的是ast-utils
。到目前为止,我已经使用了一个插件,在那里添加了修改后的规则,并执行了require('eslint/lib/rules/utils/ast-utils')
,因为eslint
无论如何都是对等依赖。
由于https://github.com/eslint/eslint/commit/24c9f2ac57efcd699ca69695c82e51ce5742df7b这不再可能,因为exports
指令已添加到package.json
。现在改变核心eslint规则行为的常用方法是什么?
- 复制所有依赖项是可能的,但这既乏味又无缘无故地复制代码(我必须跟踪所有依赖项,并删除eslint的代码块)。
- 派生
eslint
作为一个整体似乎并不干净,因为还有很多其他部分依赖于它(从eslint插件开始,再到vscode扩展、纱线SDK,等等)。每一个叉子都需要更换,或者使用一些非常肮脏的更名,其中叉子假装是原始的(事故随时可能发生)。 - 纱包贴
exports
看起来很脏。
有什么干净利落的办法吗?
编辑:我目前最好的想法是派生eslint
,去掉exports
,然后在派生上使用require('eslint-fork/lib/rules/utils/ast-utils')
。这意味着我无缘无故地需要一个额外的eslint
副本,但它是用于植绒的,一点磁盘空间并不重要。
推荐答案
可能需要未导出的文件的完整路径,即:
const { dirname, join } = require('path');
const astUtilsPath = join(dirname(require.resolve('eslint')), 'rules/utils/ast-utils.js');
const astUtils = require(astUtilsPath);
请注意,此方法依赖于主导出位于特定的包文件夹中(在eslint中为‘lib’)。
这篇关于分叉核心斜射规则的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:分叉核心斜射规则


猜你喜欢
- 失败的 Canvas 360 jquery 插件 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01