Skip to content

Conversation

@jesstelford
Copy link

What:

Adds support for codegen.require('module-name') to load and codegen the main export of an npm module. Fixes #47.

Why:

I've created a reusable codegen which works great. However, once I published & consume the codegen as an npm module (@ceteio/next-layout-loader), it no longer works. More details in #47.

How:

Node's built-in require.resolve algorithm supports both relative paths, and module name specifiers. The second argument to require.resolve allows specifying where to begin the search, which mirrors the existing behaviour, but adds the ability to load modules from node_modules up the tree (should even work in monorepos!).

Checklist:

  • Documentation n/a
  • Tests. ?? How would I test this?
  • Ready to be merged

Leveraging node's `require.resolve` algorithm enables supporting all the ways in which a user expects to be able to require/import a module.

Fixes kentcdodds#47
@kentcdodds
Copy link
Owner

Thanks for this @jesstelford! I'm fine to merge if existing tests pass. Unfortunately this project is using some out-dated packages and needs to be updated before CI can get passing and an automated release can go out for this feature.

The problem is that because I'm not actively using this package I can't dedicate any time to it. If you'd like to take a whack at updating all the packages as well as dropping support for unsupported versions of Node in our CI then I'd be willing to review and merge those PRs.

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 this pull request may close these issues.

Add support for full module resolution in require & import

2 participants