swc-loader icon indicating copy to clipboard operation
swc-loader copied to clipboard

swc-loader does not expose `filename` or other programmatic options to plugins

Open rametta opened this issue 3 years ago • 1 comments

When using swc, there is an option for providing the filename which can be passed down to plugins, but when using the swc-loader, the filename is not passed automatically as in the way babel-loader does it.

This makes it impossible for swc plugins using swc-loader to know the current filename and path being processed and have logic around that, along with all the other swc programatic options that could be useful to plugins.

rametta avatar Jan 24 '22 14:01 rametta

@rametta I created a patch for our SWC loader:

programmaticOptions.plugin = programmaticOptions.plugin({
  filename,
  sourceFileName: programmaticOptions.sourceFileName
});

The loader has the filename, and just passing the plugin to the loader like this: (options) => (m) => new SWCPlugin(options).visitProgram(m). Not the cleanest, so not sure if I'll create a PR for this yet, but works for us.

PepijnSenders avatar May 24 '22 15:05 PepijnSenders