使用 ESLint 禁止项目导入特定模块

shiningchen 2019-07-01

使用 ESLint 禁止项目导入特定模块

项目团队成员希望能够禁用某些 JS 依赖。比如有团队成员希望使用 lodash 而将这个巨大的依赖引入项目,导致项目整体过分臃肿。团队成员应当使用 lodash-es 来避免这种情况。那么 ESLint 就提供了一个名为 no-restricted-imports 规则,这个规则就是统一规范在项目中禁止使用的依赖。

使用 ESLint 禁止项目导入特定模块

使用方法

完整配置规则

假设我们不希望在项目中引入 lodash,那么配置规则:

rules: {
    'no-restricted-imports': [
        'error',
        {
            paths: [{
                name: 'lodash',
                message: '不要使用 lodash,请使用 lodash-es 作为替代'
            }]
        }
    ]
}

如果有团队成员试图引入 lodash 这个依赖

import _ from 'lodash'

那么就会报错,并提示 message 信息

使用 ESLint 禁止项目导入特定模块

不需要显示提示信息

如果不需要显示任何提示信息,那么 message 可以被省略,写法如下:

'no-restricted-imports': ['error', 'lodash', 'underscore']

使用 gitignore-style 写法

'no-restricted-imports': ['error', {
    patterns: ['lodash-es/*']
}]

如果违反规则会出现以下报错信息:

使用 ESLint 禁止项目导入特定模块

参考

https://eslint.org/docs/rules/no-restricted-imports

使用 ESLint 禁止项目导入特定模块

相关推荐