eslint-import-resolver-next
Version:
The next resolver for `eslint-plugin-import` or `eslint-plugin-import-x`
134 lines (102 loc) • 4.93 kB
Markdown
# eslint-import-resolver-next
[](https://www.npmjs.com/package/eslint-import-resolver-next)
[](https://www.npmjs.com/package/eslint-import-resolver-next)
[](https://www.npmjs.com/package/eslint-import-resolver-next)
The next resolver plugin for [`eslint-plugin-import`](https://www.npmjs.com/package/eslint-plugin-import) or [`eslint-plugin-import-x`](https://www.npmjs.com/package/eslint-plugin-import-x) that resolves modules with [`unrs-resolver`](https://github.com/unrs/unrs-resolver).
## Features
- Resolves modules using the [`unrs-resolver`](https://github.com/unrs/unrs-resolver) package.
- Support mono-repos and `pnpm-workspaces.yaml`.
- Support paths alias defined in `tsconfig.compilerOptions.paths` or `jsconfig.compilerOptions.paths`.
## Usage
1. Install the package:
```sh
npm install -D eslint-import-resolver-next
```
2. Add it as a resolver to your ESLint configuration.
Example config:
```js
module.exports = {
// ... other configuration options
settings: {
"import/resolver": {
next: {
// Options for the resolver
},
},
},
};
```
with Mono-repo:
```js
module.exports = {
// ... other configuration options
settings: {
"import/resolver": {
next: {
packages: ["packages/*"],
},
},
},
};
```
pnpm-workspaces:
```js
module.exports = {
// ... other configuration options
settings: {
"import/resolver": {
next: {
packages: {
pnpmWorkspace: true,
includeRoot: true,
},
},
},
},
};
```
3. For [eslint-plugin-import-x](https://github.com/un-ts/eslint-plugin-import-x/) `resolver-next`
```js
const { createNextImportResolver } = require("eslint-import-resolver-next");
module.exports = {
// ... other configuration options
settings: {
"import-x/resolver-next": [createNextImportResolver({
// Options for the resolver
})],
},
};
```
## Options
- `roots` (Array<string>): The directories to search for modules. Default: `[process.cwd()]`.
- `alias` (Record<string, string | string[]>): The paths alias. Default: `undefined`.
* The alias can be set as relative paths. relative paths are resolved from the package directory.
- `tsconfig` (boolean | string | object): Weather to use the `tsconfig.json` file. Default: `true`.
* If `true`, the resolver will try to find the `tsconfig.json` file close to the source file.
* If a string, it's the name of the file to search for or the absolute path to the file.
* If an object, see `ConfigFileOptions`.
- `jsconfig` (boolean | string | object): Weather to use the `jsconfig.json` file. Default: `true`.
* If `true`, the resolver will try to find the `jsconfig.json` file close to the source file.
* If a string, it's the name of the file to search for or the absolute path to the file.
* If an object, see `ConfigFileOptions`.
- `packages` (string[] | PackageOptions): The patterns or options to search for packages. Default: `undefined`.
* If an array, the resolver will search for packages in the specified patterns.
* If an object, see `PackageOptions`.
- `bun` (boolean): Weather to enable the `bun` support. Default: `true` if bun environment is detected.
* If `true`, the resolver will try to resolve bun built-in modules.
All other options are passed to the `unrs-resolver` package. See the [unrs-resolver documentation](https://github.com/unrs/unrs-resolver#options)
### ConfigFileOptions
The `tsconfig` and `jsconfig` options can have the following properties:
- `configFile` (string): The name of the file to search for or the absolute path to the file. Default: `tsconfig.json`.
- `ignore` (string[]): The directories to ignore. Default: `["**/node_modules/**"]`.
- `references` ('auto' | string[]): Support for Typescript Project References. Default: `'auto'`.
* If `'auto'`, the resolver will try to find the `references` field in the `tsconfig.json` file.
* If an array, the resolver will use the specified references.
### PackageOptions
A folder with a `package.json` file is considered a package. The `PackageOptions` object can have the following properties:
- `patterns` (string[]): The patterns to search for packages. Default: `["."]`.
- `ignore` (string[]): The directories to ignore. Default: `["**/node_modules/**", "**/bower_components/**", "**/test/**", "**/tests/**"]`.
- `includeRoot` (boolean): Weather to include the root directory. Default: `false`.
- `pnpmWorkspace` (boolean | string): Weather to use the `pnpm-workspace.yaml` file to find packages. Default: `false`.
* If `true`, the resolver will try to find the `pnpm-workspace.yaml` file in the package directory.
* If a string, define the path to the `pnpm-workspace.yaml` file.