Fix make-cjs-components script to work without mjs files being built first #1013
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 PR resolves the problem where the webpacking failed when building the cjs bundle without having first build the mjs files. It was due to the
webpack.common.cjsfile usingrequire.resolve()command to get full path names; sincewebpack.common.cjsis in thecomponentsdirectory, it was using the mainpackage.jsonfile, and so the pseudo-packages like#jswere resolving to themathjax-full/mjsdirecrtory rather than themathjax-full/cjsdirectory.This resolves the problem by moving the
fullPath()function to a separatefullpath.cjsfile in thecomponents/mjsandcomponents/cjsdirectories, so that the cjs file will use thecomponents/cjs/package.jsonmappings instead.It also adds a test to the
link:fullscript to only make the link if it is not already there, so it is safe to run the script more than once.