webpack-contrib / file-loader

File Loader
MIT License
1.86k stars 257 forks source link

Strange filename for urls with hash #350

Closed 719media closed 4 years ago

719media commented 4 years ago

Expected Behavior

Same output for compilation

Actual Behavior

-  src: url(/assets/dev/fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"), url(/assets/dev/fonts/fa-solid-900.woff2) format("woff2"), url(/assets/dev/fonts/fa-solid-900.woff) format("woff"), url(/assets/dev/fonts/fa-solid-900.ttf) format("truetype"), url(/assets/dev/fonts/fa-solid-900.svg#fontawesome) format("svg");
+  src: url("[object Module]?#iefix") format("embedded-opentype"), url(/assets/dev/fonts/fa-solid-900.woff2) format("woff2"), url(/assets/dev/fonts/fa-solid-900.woff) format("woff"), url(/assets/dev/fonts/fa-solid-900.ttf) format("truetype"), url("[object Module]#fontawesome") format("svg");

Code

{
    test: /\.(eot|ttf|svg)$/,
    loader: 'file-loader',
  },

How Do We Reproduce?

Just use font awesome in your build. Like

@import "~@fortawesome/fontawesome-free/scss/fontawesome";
@import "~@fortawesome/fontawesome-free/scss/solid";
alexander-akait commented 4 years ago

Update css-loader to latest version or disable ES modules https://github.com/webpack-contrib/file-loader#esmodule

alexander-akait commented 4 years ago

If it not solve your problem please open a new issue in css-loader with a reproducible test repo

719media commented 4 years ago

Adding esModule: false to the loader worked. I'm not exactly sure why that has that effect, but I appreciate the help.

lerit commented 4 years ago

@evilebottnawi update css-loader not resolve this issue:"css-loader": "^3.5.3" only work with:esModule: false source:

 <img  src="~assets/abc.jpg" />

output:

<img data-v-b0d84c92="" src="[object Module]">

current file-loader:v6.0.0