The Jared Wilcurt's strict ESLint rules for importing files.
npm install --save-dev eslint eslint-plugin-import eslint-config-tjw-import
- In your
eslint.config.js
:import importPlugin from 'eslint-plugin-import'; import tjwImport from 'eslint-config-tjw-import'; export default [ importPlugin.flatConfigs.recommended, tjwImport, { // Then project specific rules/settings } ];
- You will also need to create an empty
.eslintrc.cjs
file in the root of your project, due to a known bug
You may want to add in an import resolver if you use Vite for aliasing.
npm install --save-dev eslint-import-resolver-vite
// eslint.config.js
import path from 'node:path';
import importPlugin from 'eslint-plugin-import';
import tjwImport from 'eslint-config-tjw-import';
const __dirname = import.meta.dirname;
export default [
importPlugin.flatConfigs.recommended,
tjwImport,
{
// Project specific rules/settings
settings: {
'import/resolver': {
vite: {
viteConfig: {
resolve: {
alias: {
'@': path.resolve(__dirname, 'src'),
'@@': path.resolve(__dirname, 'tests'),
'@@@': path.resolve(__dirname, 'docs')
}
}
}
}
}
}
}
];
See also: