![](/img/trans.png)
[英]Eslint no-restricted-imports only restrict importing from a package root?
[英]ESLint: How can I restrict certain paths with "no-restricted-imports" but allow subpaths?
我正在使用 Material-UI 并且我正在从
import { Button } from "@material-ui/core";
到
import Button from "@material-ui/core/Button";
我想添加一个 lint 规则,不允许从“@material-ui/core”直接导入,但允许任何子文件夹,例如“@material-ui/core/Button”。
我发现了一个应该解决它的“无限制进口”规则,但我只能限制“@material-ui/core”下的任何东西,所以“@material-ui/core/*”也受到限制。
我尝试了几种方法来设置规则,但对于我的用例,所有这些方法都失败了。 即:
"no-restricted-imports": ["error", "@material-ui/core"]
///////
"no-restricted-imports": ["error", {
"patterns": ["@material-ui/core"]
}]
但两者都行不通。 我是否遗漏了什么,或者只是无法实现?
我想用 lodash 做同样的事情。
对于 Treeshaking,我想限制
从'lodash'导入{get};
但允许
从 'lodash/get' 导入获取;
为此进行 eslint 配置,
'no-restricted-imports': [
'error',
{
paths: [
{
name: 'lodash',
message:
"Please use `import [package] from 'lodash/[package]'` instead."
}
],
patterns: ['!lodash/*']
}
]
您可以为您的包裹尝试类似的方法。
您可以对某些文件路径使用覆盖
"no-restricted-imports": ["error", "@material-ui/core"],
"overrides": [{
"files": [...],
"rules: {
"no-restricted-imports": ["error", {
"patterns": ["@material-ui/core"]
}]
},
}],
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.