Skip to content

node-resolve 14 breaks commonjs circular dependencies #1258

@perrin4869

Description

@perrin4869
  • 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions