I can't really say that I understand why this was done in the first place, so don't want to go "fixing" it as there might be some relying on this. To me, it seems like that in the absence of the output flag, these fields should be read and used exactly, no replacing.
mainNoExtension seems like it should be the last of the fallbacks, not something that overwrites valid entries & chosen names.
Packages that don't use the
output
flag or have a"main"
in theirpackage.json
have their preferred filename output ignored.For example, say I have the following package:
Unfortunately, because of the
replaceName()
here, the desired output is replaced by the package name instead.https://github.com/developit/microbundle/blob/b1a637486234a2ae784ccf0c512321e2d3efef7c/src/index.js#L297-L303
https://github.com/developit/microbundle/blob/b1a637486234a2ae784ccf0c512321e2d3efef7c/src/index.js#L255-L260
mainNoExtension
traces back to here, which defines a couple of fallbacks.https://github.com/developit/microbundle/blob/b1a637486234a2ae784ccf0c512321e2d3efef7c/src/index.js#L219-L225
I can't really say that I understand why this was done in the first place, so don't want to go "fixing" it as there might be some relying on this. To me, it seems like that in the absence of the
output
flag, these fields should be read and used exactly, no replacing.mainNoExtension
seems like it should be the last of the fallbacks, not something that overwrites valid entries & chosen names.