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

Support importing npm modules by name #48

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

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