lwc
lwc copied to clipboard
Support transforming `.mjs` files
Is your feature request related to a problem? Please describe.
More and more libraries are leveraging the .mjs
file extension for their ES Modules. The LWC transformer code only looks for .js
or .ts
to transform. It throws an error if .mjs
is used:
CompilerError: LWC1005: No available transformer for "~/my-project/node_modules/SomeDep/dist/foo.mjs"
Notice this is for a dependency in node_modules that I (as the LWC component/app author) might not have control over. So the current workaround of renaming the file to .js
will not work here, I don't have control over the dependency.
Describe the solution you'd like
Support the .mjs
file extension when LWC transforms files.
Update https://github.com/salesforce/lwc/blob/master/packages/@lwc/compiler/src/transformers/transformer.ts#L86 to this:
case '.ts':
case '.js':
case '.mjs':
transformer = scriptTransformer;
break;
Describe alternatives you've considered
Don't use dependencies that use .mjs
😞
Additional context
Node docs and v8 docs recommend using the .mjs
extension and I see more and more libraries moving that direction (thankfully, it's the ~future~ present).