nabla / vite-plugin-eslint

Plugs ESLint into Vite dev server
MIT License
122 stars 4 forks source link

`[vite] Internal server error: __dirname is not defined` #24

Closed rakleed closed 10 months ago

rakleed commented 10 months ago

It seems like there are some problems with the eslint compatibility mode, although when running eslint . everything works correctly.

Vite 5.0.0, ESLint 8.54.0, @nabla/vite-plugin-eslint 2.0.0

Log ```log [vite] Internal server error: __dirname is not defined Plugin: vite-plugin-eslint File: .../node_modules/vite/dist/client/client.mjs at TransformContext.transform (file:///.../node_modules/@nabla/vite-plugin-eslint/src/index.mjs:24:37) at Object.transform (file:///.../node_modules/vite/dist/node/chunks/dep-T98iZFpD.js:61996:62) at async loadAndTransform (file:///.../node_modules/vite/dist/node/chunks/dep-T98iZFpD.js:47780:29) at async viteTransformMiddleware (file:///.../node_modules/vite/dist/node/chunks/dep-T98iZFpD.js:57379:32) [vite] Internal server error: __dirname is not defined Plugin: vite-plugin-eslint File: /@react-refresh at TransformContext.transform (file:///.../node_modules/@nabla/vite-plugin-eslint/src/index.mjs:24:37) at Object.transform (file:///.../node_modules/vite/dist/node/chunks/dep-T98iZFpD.js:61996:62) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async loadAndTransform (file:///.../node_modules/vite/dist/node/chunks/dep-T98iZFpD.js:47780:29) at async viteTransformMiddleware (file:///.../node_modules/vite/dist/node/chunks/dep-T98iZFpD.js:57379:32) [vite] Internal server error: __dirname is not defined Plugin: vite-plugin-eslint File: /.../src/index.jsx at TransformContext.transform (file:///.../node_modules/@nabla/vite-plugin-eslint/src/index.mjs:24:37) at Object.transform (file:///.../node_modules/vite/dist/node/chunks/dep-T98iZFpD.js:61996:62) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async loadAndTransform (file:///.../node_modules/vite/dist/node/chunks/dep-T98iZFpD.js:47780:29) at async viteTransformMiddleware (file:///.../node_modules/vite/dist/node/chunks/dep-T98iZFpD.js:57379:32) ```
vite.config.js ```js import react from '@vitejs/plugin-react'; import eslintPlugin from '@nabla/vite-plugin-eslint'; // https://vitejs.dev/config/ export default { plugins: [ react(), eslintPlugin(), ], server: { open: true, }, }; ```
eslint.config.js ```js import globals from 'globals'; import eslintConfigPrettier from 'eslint-config-prettier'; import { FlatCompat } from '@eslint/eslintrc'; import path from 'node:path'; import { fileURLToPath } from 'node:url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const compat = new FlatCompat({ baseDirectory: __dirname, }); export default [ ...compat.extends( 'plugin:unicorn/recommended', 'airbnb', 'airbnb/hooks', ), eslintConfigPrettier, { files: [ '**/*.js', '**/*.jsx', ], languageOptions: { globals: { ...globals.browser, ...globals.es2021, }, parserOptions: { ecmaVersion: 2023, sourceType: 'module', }, }, linterOptions: { reportUnusedDisableDirectives: true, }, rules: { 'react/prop-types': 0, 'import/prefer-default-export': 'off', 'jsx-a11y/label-has-associated-control': [ 2, { controlComponents: ['InputText'], depth: 3, }, ], 'react/jsx-no-bind': 'off', 'spaced-comment': 'off', 'unicorn/filename-case': 'off', }, }, { files: ['eslint.config.js'], rules: { 'import/no-extraneous-dependencies': 'off', 'no-underscore-dangle': 'off', }, }, { ignores: [ 'dist', 'vite.config.js', ], }, ]; ```
ArnaudBarre commented 10 months ago

Yep I'm sorry I got hit by the fact that Vite hide this interop issue with local plugins. This is fixed in v2.0.2