A simply wrapped oxc-resolver for eslint-plugin-import-x and eslint-plugin-import.
Note
As of now, eslint-import-resolver-typescript has been fully optimized for performance by using unrs-resolver.
If you don't use oxc-eco packages, we recommend prioritizing the officially maintained resolver.
A good replacement for eslint-import-resolver-node.
You can get more info about resolver in the README of eslint-plugin-import-x.
npm install eslint-import-resolver-oxc --save-devFor eslint-plugin-import-x(>=4.5.0):
// eslint.config.js
export default [
{
settings: {
'import-x/resolver-next': [
createOxcImportResolver({
// resolver options
}),
// other resolvers
]
}
}
]For `eslint-plugin-import-x(<4.5.0)`:
[!NOTE]
According to https://github.com/un-ts/eslint-plugin-import-x/blob/master/src/utils/resolve.ts#L155
The settings prefix is hard coded as
import-x/even with flat config.
// eslint.config.js
export default [
{
settings: {
'import-x/resolver': 'oxc'
}
}
]or
// eslint.config.js
export default [
{
settings: {
'import-x/resolver': {
oxc: true
// other resolvers...
}
}
}
]or
// eslint.config.js
export default [
{
settings: {
'import-x/resolver': {
oxc: {
// resolver options...
},
// other resolvers...
}
}
}
]For eslint-plugin-import:
Replace import-x/resolver with import/resolver in the object above.
Default options see normalizeOptions.ts
This option can be a string or an object.
String option:
the path of the bundler's config file.
Object option:
- type: the type of the bundler.
- path: the config of the bundler.
- options: some special options for bundler config.
If only the type is specified, the configuration file in the root directory (cwd) will be automatically detected, similar to how tsconfig is handled.
If only the path is specified, thetype will be inferred based on the filename.
// eslint.config.js
import { createOxcImportResolver, transformViteConfig } from 'eslint-import-resolver-oxc'
export default [
{
settings: {
'import-x/resolver-next': [
await createOxcImportResolver({
bundlerConfig: 'vite.config.ts',
}),
]
}
}
]The jsconfig.json and tsconfig.json in the root directory (cwd) will automatically detected.
More options see oxc-resolver
Eslint is a bit slow in large projects. While I track the performance of the rules, I found that eslint-plugin-import-x took a lot of time. I thought change a resolver might bring some improvements.
I can't finish the project without the help of oxc-resolver.
Thanks @Boshen for his work on oxc-resolver.