Permalink
Cannot retrieve contributors at this time
136 lines (106 sloc)
2.86 KB
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
codeql-action/node_modules/eslint-plugin-import/docs/rules/no-internal-modules.md
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# import/no-internal-modules | |
<!-- end auto-generated rule header --> | |
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](https://github.com/isaacs/node-glob#glob-primer) 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: | |
```pt | |
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: | |
```json | |
{ | |
... | |
"rules": { | |
"import/no-internal-modules": [ "error", { | |
"allow": [ "**/actions/*", "source-map-support/*" ], | |
} ] | |
} | |
} | |
``` | |
The following patterns are considered problems: | |
```js | |
/** | |
* 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: | |
```js | |
/** | |
* 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: | |
```pt | |
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: | |
```json | |
{ | |
... | |
"rules": { | |
"import/no-internal-modules": [ "error", { | |
"forbid": [ "**/actions/*", "source-map-support/*" ], | |
} ] | |
} | |
} | |
``` | |
The following patterns are considered problems: | |
```js | |
/** | |
* 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: | |
```js | |
/** | |
* in my-project/entry.js | |
*/ | |
import 'source-map-support'; | |
import { getUser } from '../actions'; | |
export * from 'source-map-support'; | |
export { getUser } from '../actions'; | |
``` |