Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: Failed to load config "xo" to extend from #504

Closed
wooorm opened this issue Nov 5, 2020 · 7 comments
Closed

Error: Failed to load config "xo" to extend from #504

wooorm opened this issue Nov 5, 2020 · 7 comments

Comments

@wooorm
Copy link

wooorm commented Nov 5, 2020

I cannot reproduce this locally, but fresh installs of Node, npm, etc, on Travis and GitHub Actions started failing recently:

On Travis (https://travis-ci.org/github/micromark/micromark/jobs/740973140#L257)

Error: Failed to load config "xo" to extend from.
258Referenced from: BaseConfig
259    at configMissingError (/home/travis/build/micromark/micromark/node_modules/@eslint/eslintrc/lib/config-array-factory.js:289:9)
260    at ConfigArrayFactory._loadExtendedShareableConfig (/home/travis/build/micromark/micromark/node_modules/@eslint/eslintrc/lib/config-array-factory.js:877:23)
261    at ConfigArrayFactory._loadExtends (/home/travis/build/micromark/micromark/node_modules/@eslint/eslintrc/lib/config-array-factory.js:780:25)
262    at ConfigArrayFactory._normalizeObjectConfigDataBody (/home/travis/build/micromark/micromark/node_modules/@eslint/eslintrc/lib/config-array-factory.js:719:25)
263    at _normalizeObjectConfigDataBody.next (<anonymous>)
264    at ConfigArrayFactory._normalizeObjectConfigData (/home/travis/build/micromark/micromark/node_modules/@eslint/eslintrc/lib/config-array-factory.js:664:20)
265    at _normalizeObjectConfigData.next (<anonymous>)
266    at ConfigArrayFactory.create (/home/travis/build/micromark/micromark/node_modules/@eslint/eslintrc/lib/config-array-factory.js:459:16)
267    at createBaseConfigArray (/home/travis/build/micromark/micromark/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js:98:48)
268    at new CascadingConfigArrayFactory (/home/travis/build/micromark/micromark/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js:234:30)
269

On Actions: https://github.com/micromark/micromark/runs/1357272781?check_suite_focus=true#step:5:34

Error: Failed to load config "xo" to extend from.
35
Referenced from: BaseConfig
36
    at configMissingError (/home/runner/work/micromark/micromark/node_modules/@eslint/eslintrc/lib/config-array-factory.js:289:9)
37
    at ConfigArrayFactory._loadExtendedShareableConfig (/home/runner/work/micromark/micromark/node_modules/@eslint/eslintrc/lib/config-array-factory.js:877:23)
38
    at ConfigArrayFactory._loadExtends (/home/runner/work/micromark/micromark/node_modules/@eslint/eslintrc/lib/config-array-factory.js:780:25)
39
    at ConfigArrayFactory._normalizeObjectConfigDataBody (/home/runner/work/micromark/micromark/node_modules/@eslint/eslintrc/lib/config-array-factory.js:719:25)
40
    at _normalizeObjectConfigDataBody.next (<anonymous>)
41
    at ConfigArrayFactory._normalizeObjectConfigData (/home/runner/work/micromark/micromark/node_modules/@eslint/eslintrc/lib/config-array-factory.js:664:20)
42
    at _normalizeObjectConfigData.next (<anonymous>)
43
    at ConfigArrayFactory.create (/home/runner/work/micromark/micromark/node_modules/@eslint/eslintrc/lib/config-array-factory.js:459:16)
44
    at createBaseConfigArray (/home/runner/work/micromark/micromark/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js:98:48)
45
    at new CascadingConfigArrayFactory (/home/runner/work/micromark/micromark/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js:234:30)

I am guessing this has something to do with npm@7’s peer dep resolving? 🤔

@wooorm
Copy link
Author

wooorm commented Nov 5, 2020

I can now reproduce it locally on npm 7.0.8

@wooorm
Copy link
Author

wooorm commented Nov 5, 2020

This seems to be caused by sonarjs being used too, which does not allow eslint 7 as a peer dep:

https://github.com/SonarSource/eslint-plugin-sonarjs/blob/5679fbcc76f45fc40c3392a8a1b4e61495e0a16e/package.json#L27

...which conflicts with xo wanting v7:

https://github.com/xojs/eslint-config-xo/blob/master/package.json#L63

So npm apparently decides to not install eslint-config-xo? 🤔

@sindresorhus
Copy link
Member

That sounds like a npm bug.

@wooorm
Copy link
Author

wooorm commented Nov 5, 2020

Yeah! Might be fine to close it, but maybe other folks will start running into it.

A “fix” might be to add an eslint peer-dep higher up?

@sindresorhus
Copy link
Member

But ESLint is already a dependency.

@wooorm
Copy link
Author

wooorm commented Nov 5, 2020

...d’oh, of course. Well, that’s really weird 🤔

OK: another idea on why this might’ve happened: ESLint 6 and xo were placed in ./node_modules/, and ESLint 7 and eslint-config-xo in ./node_modules/xo/node_modules. ESLint’s config parser, @eslint/eslintrc, is new and only in ESLint 7, so because it can’t conflict it’s placed in ./node_modules/. Hence the error because it can’t find eslint-config-xo?

@fregante
Copy link
Member

fregante commented Aug 6, 2022

Merging into #404

@fregante fregante closed this as not planned Won't fix, can't repro, duplicate, stale Aug 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants