xo icon indicating copy to clipboard operation
xo copied to clipboard

Failed to load config "xo/esnext" to extend from

Open coreyfarrell opened this issue 6 years ago • 15 comments

I always keep xo installed globally so I can usually run lint without running npm install on the local repo. This does not work for me after updating my global install to 0.25.3:

$ npm i -g xo
$ rm -fr node_modules
$ xo
Error: Failed to load config "xo/esnext" to extend from.
Referenced from: BaseConfig
    at configMissingError (/home/cfarrell/.nvm/versions/node/v12.10.0/lib/node_modules/xo/node_modules/eslint/lib/cli-engine/config-array-factory.js:233:9)
    at ConfigArrayFactory._loadExtendedShareableConfig (/home/cfarrell/.nvm/versions/node/v12.10.0/lib/node_modules/xo/node_modules/eslint/lib/cli-engine/config-array-factory.js:712:23)
    at ConfigArrayFactory._loadExtends (/home/cfarrell/.nvm/versions/node/v12.10.0/lib/node_modules/xo/node_modules/eslint/lib/cli-engine/config-array-factory.js:617:25)
    at ConfigArrayFactory._normalizeObjectConfigDataBody (/home/cfarrell/.nvm/versions/node/v12.10.0/lib/node_modules/xo/node_modules/eslint/lib/cli-engine/config-array-factory.js:547:25)
    at _normalizeObjectConfigDataBody.next (<anonymous>)
    at ConfigArrayFactory._normalizeObjectConfigData (/home/cfarrell/.nvm/versions/node/v12.10.0/lib/node_modules/xo/node_modules/eslint/lib/cli-engine/config-array-factory.js:491:20)
    at _normalizeObjectConfigData.next (<anonymous>)
    at createConfigArray (/home/cfarrell/.nvm/versions/node/v12.10.0/lib/node_modules/xo/node_modules/eslint/lib/cli-engine/config-array-factory.js:307:25)
    at ConfigArrayFactory.create (/home/cfarrell/.nvm/versions/node/v12.10.0/lib/node_modules/xo/node_modules/eslint/lib/cli-engine/config-array-factory.js:362:16)
    at createBaseConfigArray (/home/cfarrell/.nvm/versions/node/v12.10.0/lib/node_modules/xo/node_modules/eslint/lib/cli-engine/cascading-config-array-factory.js:84:48)

This seems to be caused by eslint@6, see https://eslint.org/docs/user-guide/migrating-to-6.0.0#-plugins-and-shareable-configs-are-no-longer-affected-by-eslints-location

coreyfarrell avatar Sep 26 '19 11:09 coreyfarrell

Unrelated note while inspecting my global install I noticed some .DS_Store files leaked into the npm publish of xo and related modules.

coreyfarrell avatar Sep 26 '19 11:09 coreyfarrell

0.25.2 does not have this issue. So it was introduced in the last version

rizowski avatar Sep 30 '19 21:09 rizowski

@rizowski Thanks for the suggestion however I just ran npm i -g [email protected] and still have the issue. I verified the correct version was installed globally.

coreyfarrell avatar Oct 01 '19 11:10 coreyfarrell

Oh my mistake. I have a similar error but it is around loading the plugin unicorn from the BaseConfig. That error goes away when I go back a version. I also have XO installed locally, I wouldn't think that would matter too much.

rizowski avatar Oct 01 '19 16:10 rizowski

I'm experiencing this even when xo installed locally on a project. Is there a temporary fix?

jmcbee avatar Oct 07 '19 22:10 jmcbee

Same issue here :-(

cayasso avatar Oct 08 '19 16:10 cayasso

maybe related

Can't load ava plugin in https://github.com/sindresorhus/eslint-plugin-unicorn/pull/387

But only fails on CI https://travis-ci.org/sindresorhus/eslint-plugin-unicorn/jobs/595170571

fisker avatar Oct 10 '19 02:10 fisker

yeah rolling back to 0.25.2 fixes it for now.

akramsaouri avatar Oct 10 '19 15:10 akramsaouri

I have the same issue, both with the latest version and with 0.25.2

jscheffner avatar Oct 31 '19 13:10 jscheffner

Rolling back to 0.24.x fixed it for me

jscheffner avatar Oct 31 '19 13:10 jscheffner

Some testing around some of these base-config errors I've noticed that removing your node_modules and reinstalling after an upgrade can help fix this issue.

rizowski avatar Oct 31 '19 15:10 rizowski

Can reproduce, xo v0.28.0

Error: Failed to load config "xo/esnext" to extend from.
Referenced from: BaseConfig
    at configMissingError (C:\Projects\Classified\ems\node_modules\.pnpm\registry.npmjs.org\eslint\6.8.0\node_modules\eslint\lib\cli-engine\config-array-factory.js:265:9)
    at ConfigArrayFactory._loadExtendedShareableConfig (C:\Projects\Classified\ems\node_modules\.pnpm\registry.npmjs.org\eslint\6.8.0\node_modules\eslint\lib\cli-engine\config-array-factory.js:826:23)
    at ConfigArrayFactory._loadExtends (C:\Projects\Classified\ems\node_modules\.pnpm\registry.npmjs.org\eslint\6.8.0\node_modules\eslint\lib\cli-engine\config-array-factory.js:731:25)
    at ConfigArrayFactory._normalizeObjectConfigDataBody (C:\Projects\Classified\ems\node_modules\.pnpm\registry.npmjs.org\eslint\6.8.0\node_modules\eslint\lib\cli-engine\config-array-factory.js:660:25)
    at _normalizeObjectConfigDataBody.next (<anonymous>)
    at ConfigArrayFactory._normalizeObjectConfigData (C:\Projects\Classified\ems\node_modules\.pnpm\registry.npmjs.org\eslint\6.8.0\node_modules\eslint\lib\cli-engine\config-array-factory.js:596:20)
    at _normalizeObjectConfigData.next (<anonymous>)
    at createConfigArray (C:\Projects\Classified\ems\node_modules\.pnpm\registry.npmjs.org\eslint\6.8.0\node_modules\eslint\lib\cli-engine\config-array-factory.js:340:25)
    at ConfigArrayFactory.create (C:\Projects\Classified\ems\node_modules\.pnpm\registry.npmjs.org\eslint\6.8.0\node_modules\eslint\lib\cli-engine\config-array-factory.js:395:16)
    at createBaseConfigArray (C:\Projects\Classified\ems\node_modules\.pnpm\registry.npmjs.org\eslint\6.8.0\node_modules\eslint\lib\cli-engine\cascading-config-array-factory.js:86:48)

PS: I use pnpm, and I tried removing node_modules and reinstalling, it is installed both locally and globally

whopiyush avatar Mar 25 '20 12:03 whopiyush

I ran into the same issue with a global xo installation.

@coreyfarrell was right on point with his initial assessment:

This seems to be caused by eslint@6

To add another quote from ESLint's migration guide:

If you use a global installation of ESLint (e.g. installed with npm install eslint --global) along with plugins, you should install those plugins locally in the projects where you run ESLint. [...]

I got it to work after locally installing the required configs/plugins:

npm i -D eslint-config-xo

There are likely other missing packages, e.g. eslint-plugin-import etc. - They all need to be available locally.

The reason why [email protected] still works is because it uses ESLint 5. [email protected] and later uses ESLint 6.

friederbluemle avatar Apr 19 '20 06:04 friederbluemle

$ xo --version
0.36.1

$ xo
Error: Failed to load config "xo/esnext" to extend from.
Referenced from: BaseConfig
    at configMissingError (/usr/local/lib/node_modules/xo/node_modules/@eslint/eslintrc/lib/config-array-factory.js:289:9)
    at ConfigArrayFactory._loadExtendedShareableConfig (/usr/local/lib/node_modules/xo/node_modules/@eslint/eslintrc/lib/config-array-factory.js:877:23)
    at ConfigArrayFactory._loadExtends (/usr/local/lib/node_modules/xo/node_modules/@eslint/eslintrc/lib/config-array-factory.js:780:25)
    at ConfigArrayFactory._normalizeObjectConfigDataBody (/usr/local/lib/node_modules/xo/node_modules/@eslint/eslintrc/lib/config-array-factory.js:719:25)
    at _normalizeObjectConfigDataBody.next (<anonymous>)
    at ConfigArrayFactory._normalizeObjectConfigData (/usr/local/lib/node_modules/xo/node_modules/@eslint/eslintrc/lib/config-array-factory.js:664:20)
    at _normalizeObjectConfigData.next (<anonymous>)
    at ConfigArrayFactory.create (/usr/local/lib/node_modules/xo/node_modules/@eslint/eslintrc/lib/config-array-factory.js:459:16)
    at createBaseConfigArray (/usr/local/lib/node_modules/xo/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js:98:48)
    at new CascadingConfigArrayFactory (/usr/local/lib/node_modules/xo/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js:234:30)

isghe avatar Dec 15 '20 09:12 isghe

I occasionally have this bug when adding/removing dependencies. Usually deleting node_modules and the lock fixes it, but recently the error persisted until I updated all of the dependencies and tried again.

Related:

  • https://github.com/xojs/xo/issues/546

fregante avatar Aug 06 '22 12:08 fregante