-
-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New resolver design #40
Comments
Why not: {
resolver: "webpack",
resolverOptions: {/* resolver-specific options */},
} |
I don't like this idea of Let's do |
Since we have multiple resolvers, and each one of them will have its own unique set of options. Perhaps we could approach it like this instead: {
webpack?: boolean | WebpackResolverOption | null
typescript?: boolean | TypeScriptResolverOption | null
node?: boolean | NodeResolverOption | null
} |
That's how it's working nowadays except it requires specific npm packages installed. 🥹 But if we are going to adopt using For resolver options, could there be any other options except I'm asking because I want to make a breaking change to drop support for previous resolvers instead of continuing. |
That would work and be preferred in flat config format. Nonflat config has to support the package name as string. |
Yeah, I want to do the same. There are many resolve libraries out there trying to mimic Node.js-like resolving algorithm: |
I think the only modern resolution mechanisms one needs are these two (names based on tsconfig
|
We will still need a library as long as we are publishing ESM/CJS dual packages and want to have a unified behavior across |
Is CJS support still desired? CJS packages could just remain on using Non-flat configs load as CJS but if I recall correctly, |
Flat config supports both CJS and ESM, so there is no reason to make |
Ah, you are right. I wasn't aware that it's possible to support CJS in flat config as I head read this, so transpilation to CJS will be required if non-flat config is to be supported. |
@JounQin Was reading this blog post: How we made Vite 4.3 faaaaster 🚀, and here I quote:
IMHO should we build our own resolving algorithm as well? |
Regarding typescript, it would be great if this could somehow piggyback off of typescript's own module resolution. https://github.com/import-js/eslint-import-resolver-typescript mostly matches typescript, but I don't think it supports the project service, so you still have to tell it about all the relevant projects manually (in dependency order). typescript-eslint does support the project service through |
I haven't remove the
resolver
concept ineslint-plugin-import-x<=0.2
because I found that thewebpack
resolver may be still useful for those webpack users, and although we can useenhanced-resolve
directly, but the settings can not fit all projects, I need to figure out how to set the resolver correctly for specific projects.For example:
I'm thinking the interface of
import-x/resolver
setting should be:By default,
eslint-plugin-import-x
should useenhanced-resolve
directly to simulate nativenode
resolve algorithm.The text was updated successfully, but these errors were encountered: