Parcel import resolution plugin for eslint-plugin-import. This allows for eslint/import to work with parcel's module resolution.
npm install eslint-import-resolver-parcel -D
Add this to your eslint config:
settings: {
'import/resolver': 'parcel'
}- Relative paths (
import foo from '../foo.js') - Absolute paths (
import _ from 'lodash') - Tilde paths (
import foo from '~/foo.js') - Root paths* (
import foo from '/foo.js') - Aliasing (parcel docs)
- Glob Paths (parcel docs)
Because root paths require knowledge of the entry points, you must pass in the folder where the entry points are located into the config:
settings: {
'import/resolver': {
parcel: {
rootDir: 'src' // wherever your entrypoints are located
}
}
}If not specified, it will assume process.cwd() (where eslint is called from, probably where the package.json is located).
If you want to automatically add extra extensions to resolve to, e.g., test-file resolves to test-file.ts, just pass in an array to the extensions key of the config.
settings: {
'import/resolver': {
parcel: {
extensions: ['.ts'] // whatever extra extensions you want to look for
}
}
}Current default extensions are .js and .jsx.