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

node-resolve 14 breaks commonjs circular dependencies #1258

Closed
perrin4869 opened this issue Sep 7, 2022 · 7 comments · Fixed by #1259
Closed

node-resolve 14 breaks commonjs circular dependencies #1258

perrin4869 opened this issue Sep 7, 2022 · 7 comments · Fixed by #1259

Comments

@perrin4869
Copy link
Contributor

  • Rollup Plugin Name: @rollup/plugin-node-resolve
  • Rollup Plugin Version: 14
  • Rollup Version: 2.79.0
  • Operating System (or Browser): slackware64-current
  • Node Version: 16.16.0
  • Link to reproduction (⚠️ read below): https://github.com/perrin4869/rollup-joi

Expected Behavior

Builds successfully and runs on node

Actual Behavior

It throws during build:

> rollup-readable-stream@1.0.0 build
> rollup -c rollup.config.js index.js


index.js → index.out.js...
[!] Error: Unexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit:
(commonjs--resolver) resolveId "joi" "/home/perrin4869/nodejs/rollup-joi/index.js"
(node-resolve) resolveId "joi" "/home/perrin4869/nodejs/rollup-joi/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js" "/home/perrin4869/nodejs/rollup-joi/index.js"
(commonjs) transform "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./cache" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./common" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./compile" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./errors" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./extend" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./manifest" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./ref" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./template" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./trace" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./types/alternatives" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./types/any" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./types/array" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./types/boolean" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./types/date" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./types/function" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./types/link" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./types/number" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./types/object" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./types/string" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./types/symbol" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./types/binary" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(node-resolve) resolveId "./schemas" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/cache.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/common.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/compile.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/errors.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/extend.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/manifest.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/template.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/ref.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/trace.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/schemas.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/types/alternatives.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/types/boolean.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/types/any.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/types/array.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/types/date.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/types/function.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/types/number.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/types/link.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/types/object.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/types/string.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/types/symbol.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs--resolver) resolveId "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/types/binary.js" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/index.js"
(commonjs) transform "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/cache.js"
(node-resolve) resolveId "./common" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/cache.js"
(commonjs) transform "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/common.js"
(node-resolve) resolveId "./schemas" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/common.js"
(node-resolve) resolveId "./messages" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/common.js"
(commonjs) transform "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/compile.js"
(node-resolve) resolveId "./common" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/compile.js"
(node-resolve) resolveId "./ref" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/compile.js"
(commonjs) transform "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/errors.js"
(node-resolve) resolveId "./annotate" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/errors.js"
(node-resolve) resolveId "./common" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/errors.js"
(node-resolve) resolveId "./template" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/errors.js"
(commonjs) transform "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/extend.js"
(node-resolve) resolveId "./common" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/extend.js"
(node-resolve) resolveId "./messages" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/extend.js"
(commonjs) transform "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/manifest.js"
(node-resolve) resolveId "./common" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/manifest.js"
(node-resolve) resolveId "./messages" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/manifest.js"
(node-resolve) resolveId "./ref" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/manifest.js"
(node-resolve) resolveId "./template" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/manifest.js"
(node-resolve) resolveId "./schemas" "/home/perrin4869/nodejs/rollup-joi/node_modules/joi/lib/manifest.js"

....redacted

Additional Information

This happens when updating from node-resolve@13 to node-resolve@14.
Somehow the circular dependency causes the resolution to fail

@jacogr
Copy link

jacogr commented Sep 7, 2022

I also had some breakages, this time due to the semver package. This issue is spot-on, it certainly seems to be caused by circular deps since packaging something with the semver package prior to 14.0.0 also mentioned circular deps as an issue found in this specific package.

This may yield more clues. (Generally try to streer clear of "me too", but in this case the observation about the cause seems to match with mine)

@shellscape
Copy link
Collaborator

shellscape commented Sep 7, 2022

@lukastaegert does #1245 fix this ?

@jacogr
Copy link

jacogr commented Sep 7, 2022

The linked PR, #1245, is the cause of this report - that one went in in the latest 14.0.0 release, and is the only difference to the 13.3.0 release.

@lukastaegert
Copy link
Member

Fix at #1259, sorry for this

@perrin4869
Copy link
Contributor Author

Thank you so much!! @lukastaegert :)

@perrin4869
Copy link
Contributor Author

Oops, keeping this open for now

@perrin4869
Copy link
Contributor Author

Wanted to confirm #1259 fixed it for me!

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

Successfully merging a pull request may close this issue.

4 participants