Files
meeting-room/frontend/node_modules/eslint-plugin-import/docs/rules/no-internal-modules.md
flying-hero 96f6318101 📦 添加虚拟环境和启动脚本
新增:
- backend/venv/ - Python 虚拟环境
- backend/start.sh - 启动脚本(使用虚拟环境)
- backend/requirements.txt - 依赖列表
- .gitignore - 忽略虚拟环境和缓存文件

说明:
- 每个项目使用独立虚拟环境
- 避免依赖冲突
- 启动脚本自动创建和激活虚拟环境
2026-04-04 18:29:02 +08:00

2.9 KiB

import/no-internal-modules

Use this rule to prevent importing the submodules of other modules.

Rule Details

This rule has two mutally exclusive options that are arrays of minimatch/glob patterns patterns:

  • allow that include paths and import statements that can be imported with reaching.
  • forbid that exclude paths and import statements that can be imported with reaching.

Examples

Given the following folder structure:

my-project
├── actions
│   └── getUser.js
│   └── updateUser.js
├── reducer
│   └── index.js
│   └── user.js
├── redux
│   └── index.js
│   └── configureStore.js
└── app
│   └── index.js
│   └── settings.js
└── entry.js

And the .eslintrc file:

{
  ...
  "rules": {
    "import/no-internal-modules": [ "error", {
      "allow": [ "**/actions/*", "source-map-support/*" ],
    } ]
  }
}

The following patterns are considered problems:

/**
 *  in my-project/entry.js
 */

import { settings } from './app/index'; // Reaching to "./app/index" is not allowed
import userReducer from './reducer/user'; // Reaching to "./reducer/user" is not allowed
import configureStore from './redux/configureStore'; // Reaching to "./redux/configureStore" is not allowed

export { settings } from './app/index'; // Reaching to "./app/index" is not allowed
export * from './reducer/user'; // Reaching to "./reducer/user" is not allowed

The following patterns are NOT considered problems:

/**
 *  in my-project/entry.js
 */

import 'source-map-support/register';
import { settings } from '../app';
import getUser from '../actions/getUser';

export * from 'source-map-support/register';
export { settings } from '../app';

Given the following folder structure:

my-project
├── actions
│   └── getUser.js
│   └── updateUser.js
├── reducer
│   └── index.js
│   └── user.js
├── redux
│   └── index.js
│   └── configureStore.js
└── app
│   └── index.js
│   └── settings.js
└── entry.js

And the .eslintrc file:

{
  ...
  "rules": {
    "import/no-internal-modules": [ "error", {
      "forbid": [ "**/actions/*", "source-map-support/*" ],
    } ]
  }
}

The following patterns are considered problems:

/**
 *  in my-project/entry.js
 */

import 'source-map-support/register';
import getUser from '../actions/getUser';

export * from 'source-map-support/register';
export getUser from '../actions/getUser';

The following patterns are NOT considered problems:

/**
 *  in my-project/entry.js
 */

import 'source-map-support';
import { getUser } from '../actions';

export * from 'source-map-support';
export { getUser } from '../actions';