vitest-dev / eslint-plugin-vitest

eslint plugin for vitest
MIT License
325 stars 44 forks source link

TypeError: Converting circular structure to JSON when extend the recommended #432

Closed Jinjiang closed 6 months ago

Jinjiang commented 6 months ago

It will get error if setting ESLint config as:

module.exports = {
  extends: [
    ...
    // 'plugin:jest/recommended', // it works in eslint-plugin-jest
    'plugin:vitest/recommended', // TypeError: Converting circular structure to JSON
  ],
  ...
};

Full log:

Oops! Something went wrong! :(

ESLint: 8.57.0

TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'Object'
    |     property 'vitest' -> object with constructor 'Object'
    |     property 'configs' -> object with constructor 'Object'
    |     property 'recommended' -> object with constructor 'Object'
    --- property 'plugins' closes the circle
Referenced from: /xxx/.eslintrc.cjs
    at JSON.stringify (<anonymous>)
    at /xxx/node_modules/.pnpm/@eslint+eslintrc@2.1.4/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:2157:45
    at Array.map (<anonymous>)
    at ConfigValidator.formatErrors (/xxx/node_modules/.pnpm/@eslint+eslintrc@2.1.4/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:2147:23)
    at ConfigValidator.validateConfigSchema (/xxx/node_modules/.pnpm/@eslint+eslintrc@2.1.4/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:2178:84)
    at ConfigArrayFactory._normalizeConfigData (/xxx/node_modules/.pnpm/@eslint+eslintrc@2.1.4/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:3020:19)
    at ConfigArrayFactory._loadExtendedPluginConfig (/xxx/node_modules/.pnpm/@eslint+eslintrc@2.1.4/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:3240:25)
    at ConfigArrayFactory._loadExtends (/xxx/node_modules/.pnpm/@eslint+eslintrc@2.1.4/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:3155:29)
    at ConfigArrayFactory._normalizeObjectConfigDataBody (/xxx/node_modules/.pnpm/@eslint+eslintrc@2.1.4/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:3096:25)
    at _normalizeObjectConfigDataBody.next (<anonymous>)
ELIFECYCLE Command failed with exit code 2.

Thanks.

httpete commented 6 months ago

Got the same reverting fixes it.

veritem commented 6 months ago

The latest version doesn't support the old eslint configuration setup; it only works with flat config. If you want to use old configuration, use v0.4.1 .

RobicaCodeaza commented 2 months ago

anyone solved the problem?

halkony commented 2 months ago

anyone solved the problem?

Run yarn add eslint-plugin-vitest@0.4.1 to downgrade since the later versions do not support the old .eslintrc.cjs format.