You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置ESLint禁止指定文件夹导入目标文件夹,允许其他文件夹导入

配置ESLint规则实现特定文件夹的导入限制

要实现你需要的导入权限控制,可使用eslint-plugin-import插件的import/no-restricted-paths规则,该规则支持基于文件路径的精准导入限制,完全适配你的需求。

步骤1:安装依赖

先确保已安装eslint-plugin-import插件:

npm install eslint-plugin-import --save-dev
# 或使用yarn
yarn add eslint-plugin-import --dev
# 或使用pnpm
pnpm add eslint-plugin-import --save-dev

步骤2:配置ESLint规则

在你的ESLint配置文件(如.eslintrc.js或.eslintrc.json)中添加如下配置:

module.exports = {
  plugins: ['import'],
  rules: {
    'import/no-restricted-paths': [
      'error',
      {
        basePath: __dirname, // 指定项目根目录,确保相对路径能被正确解析为绝对路径
        restrictions: [
          {
            from: 'core/models/**', // 匹配发起导入的源文件:core/models下所有文件及子目录文件
            to: 'core/services/**', // 禁止导入的目标路径:core/services下所有文件及子目录文件
            message: '禁止从core/models目录导入core/services的文件'
          }
        ]
      }
    ]
  }
}

配置说明

  • basePath:必须指向项目根目录,ESLint会通过它把相对路径转换为绝对路径,确保路径模式匹配准确。
  • restrictions数组中的规则项:
    • from:用glob模式定义触发限制的源文件范围,core/models/**覆盖core/models下所有层级的文件。
    • to:用glob模式定义被禁止导入的目标文件范围,core/services/**覆盖core/services下所有层级的文件。
    • message:自定义报错提示,让开发者快速明白违规原因。

效果验证

  • 当core/models下的文件尝试导入core/services的文件(比如import { UserService } from '../services/UserService'),ESLint会抛出错误提示。
  • core/interfaces或其他非core/models目录的文件导入core/services的文件时,不会触发任何规则限制。

内容的提问来源于stack exchange,提问作者Hoppe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 08:07:24