Prepare JS Modules to be more extendable #4027
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a very opinionated change which is inspired by my experiment with running NextJS on Mill in https://github.com/myyk/mill/tree/example-nextjs. It would be a smaller diff to merge that build off of this.
This change adds these features:
TypeScriptModule
toTscModule
since there will be many types of TypeScript projects that wouldn't even want to extend it.NodeModule
. In the future, this might even want to have flavors ofNpmModule
/YarnModule
/etc but I don't want to over engineer this.install
is a new command which can be more agnostic tonpm
oryarn
or whatever and will install deps and copynode_modules/
to the user's project outside of the cache to help the IDE. This will make auto-complete work a lot of the time.node_modules/
in mill reponode_modules/
in examples, assuming user can copy example into their repo as a template.Future work after this:
NextJsModule
which extendsNodeModule
and looks a lot like this: https://github.com/myyk/mill/blob/example-nextjs/example/javascriptlib/basic/2-nextjs/build.mill