project-root/
├── node_modules/
├── src/
│ ├── index.ts
│ ├── types.ts
│ ├── core/
│ │ ├── resolve.ts
│ │ ├── modulePathMapper.ts
│ │ └── ...
│ └── utils/
│ ├── helpers.ts
│ ├── log.ts
│ ├── path.ts
│ └── ...
├── tests/
│ ├── e2e/
│ ├── unit/
│ └── fixtures/
│ └── e2e/
├── tsconfig.json
├── tsconfig.base.json
├── vitest.e2e.ts
└── vitest.unit.ts
This plugin adds TypeScript
support to [eslint-plugin-import
][] (Or maybe you want to try [eslint-plugin-i
][] for faster speed)
This means you can:
import
/require
files with extension.cts
/.mts
/.ts
/.tsx
/.d.cts
/.d.mts
/.d.ts
- Use
paths
defined intsconfig.json
- Prefer resolving
@types/*
definitions over plain.js
/.jsx
- Multiple tsconfigs support just like normal
imports/exports
fields support inpackage.json
# npm
npm i -D eslint-plugin-import-x eslint-import-resolver-typescript
# pnpm
pnpm i -D eslint-plugin-import-x eslint-import-resolver-typescript
# yarn
yarn add -D eslint-plugin-import-x eslint-import-resolver-typescript
Options from enhanced-resolve
mainFields |
conditionNames |
extensions |
extensionAlias |
---|---|---|---|
"types" | "types" | ".ts" | ".js": [ ".ts", ".tsx", ".d.ts", ".js" ] |
"typings" | "import" | ".tsx" | ".jsx": [".tsx", ".d.ts", ".jsx"] |
"main" | "require" | ".d.ts" | ".cjs": [".cts", ".d.cts", ".cjs"] |
"module" | "node" | ".js" | ".mjs": [".mts", ".d.mts", ".mjs"] |
"exports" | "node-addons" | ".jsx" | |
"browser" | ".json" | ||
"default" | ".node" |
You can pass through other options of enhanced-resolve
directly