例如我想限制导入 react-use
,但允许 react-use/lib/usePrevious
。我尝试过:
rules: {
'no-restricted-imports': [2, { patterns: [
'react-use',
] }],
},
还有
rules: {
'no-restricted-imports': [2, { patterns: [
'react-use',
'!react-use/*',
] }],
},
但是,在这两种情况下,我都会收到错误:
import usePrevious from 'react-use/lib/usePrevious';
我只想要一个错误:
import something from 'react-use';
最佳答案
这是 ignore
的限制ESLint 用于检查每个模式的库。它的构建是为了用更紧凑和准系统的东西替换现有的文件忽略方法。
具体来说,问题似乎是这个忽略系统假设您的文件结构严格类似于目录,其中限制 react-use
并忽略 !react-use/*
暗示 react-use
是一个文件夹。但是,通过模块导入结构,react-use
可以引用一个文件(通过其 index.js
)并同时包含 react-use/lib 等子文件夹
使其既可用作文件又 文件夹。
因此在限制子路径时不可能忽略模块的基础。
关于javascript - Eslint no-restricted-imports 只限制从包根目录导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66330715/