aurelia / webpack-plugin

A plugin for webpack that enables bundling Aurelia applications.
MIT License
90 stars 36 forks source link

Custom Element html not given correct moduleId #213

Open TomorrowToday opened 1 year ago

TomorrowToday commented 1 year ago

I'm submitting a bug report

Please tell us about your environment:

Current behavior: Module names/ids for custom element html files in the resources/elements directory are being named resource/element/test-element.html even when an elements alias is created for the directory

Steps to recreate

Expected behavior The moduleId for the html (and probably css) should match the path for the js file--aka it should start with 'elements/', not 'resources/'.

What is the motivation / use case for changing the behavior? I am porting a large project--hundreds of custom elements and templates living in the elements directory--from requirejs to webpack. For requirejs projects the aurelia.json nicely provides the paths properties to set this up.

Gryhyphen commented 4 months ago

Yeah uh, I've run into fun things like this. the tldr is that you need to patch it yourself, and it's a pain in the butt.

My work around, I re-wrote the aliased paths in the html-loader preprocessor in webpack. However, this would cause the webpack build to fail as static analysis would fail. So in addition, you need to still alias the files. However, then webpack doesn't BUNDLE the files. Finally, you need to load all the aliases globally using globalResources on the aurelia configuration and then FINALLY at last, your aliases work. (at the cost of the aliases being loaded as global resources).

smh.

This is for y'all that's been waiting two years for this to be fixed. Bless your heart. And I hope you come up with a better hack around this limitation then I did.

Maaxion commented 3 months ago

We wanted to in our project replace the relative imports, with aliased imports in the component js files using @viewResources() but bumped into this issue as well.

It seems like a previous issue on this was marked as wontfix, so I assume that aliased paths with component imports is basically not supported with aurelia? That's quite a shame.

bigopon commented 3 months ago

The fix may or may not be simple, its just cannot be prioritized atm. We will be back to this after RC release of v2.