Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Webpack 5.48 breaks vue-loader #10270

Closed
1 of 14 tasks
MatthewSH opened this issue Aug 2, 2021 · 6 comments
Closed
1 of 14 tasks

Webpack 5.48 breaks vue-loader #10270

MatthewSH opened this issue Aug 2, 2021 · 6 comments
Labels

Comments

@MatthewSH
Copy link

MatthewSH commented Aug 2, 2021

Describe the bug
On a new 2.0.3 project, @quasar/app 3.0.3, vue-loader 16.3.1 in conjuction with webpack 5.48 is broken due to DescriptionDataMatcherRulePlugin no longer existing.
Downgrading webpack to 5.47.1 will fix it, but there are associated vue-loader issues open:
vuejs/vue-loader#1859
vuejs/vue-loader#1854

This issue wouldn't have been on @quasar/app 3.0.1 or lower because it required vue-loader 16.2.0 which this issue doesn't seem to have unless I just missed it.

Tested on Node 14 and Node 16, Node 16 just exits due to uncaught promise now. Neither will run the build though.

Codepen/jsFiddle/Codesandbox (required)
Not applicable here, as far as I can tell.

To Reproduce
Steps to reproduce the behavior:

  1. Create new project using Quasar 2.0.3
  2. Run quasar dev

Expected behavior
I expected it to run, hah. It just doesn't right now without downgrading webpack.

Platform (please complete the following information):
Quasar Version: 2.0.3
@quasar/app Version: 3.0.2

Quasar mode:

  • SPA
  • SSR
  • PWA
  • Electron
  • Cordova
  • Capacitor
  • BEX

Tested on:

  • SPA
  • SSR
  • PWA
  • Electron
  • Cordova
  • Capacitor
  • BEX

OS:
Node: 16.6.0
NPM: 7.19.1
Yarn: N/A
Browsers: N/A
iOS: N/A
Android: N/A
Electron: N/A

Additional Context
I know this is a duplicate of #10269, that's my fault because they specify electron in the title so I passed by it because it did show up in any results when I was searching for the bug; but I've gone ahead and tracked down the issue a bit more and the workaround for it in case anyone is finding this for now.

Currently I've installed webpack@5.47.1 to get around this issue and it works.

npm install webpack@5.47.1 --no-save
@MatthewSH
Copy link
Author

Update
It looks like vue-loader has pushed a fix and released v16.4.1.
vuejs/vue-loader@c4c5f17

However, since @quasar/app requires 16.3.1 we'll never get the fix:
https://github.com/quasarframework/quasar/blob/dev/app/package.json#L107

@pdanpdan
Copy link
Collaborator

pdanpdan commented Aug 2, 2021

You can override that Verizon in package.json
Put the new version

@MatthewSH
Copy link
Author

You can override that Verizon in package.json
Put the new version

I updated the original issue about 8 minutes ago saying that you can downgrade to 5.47.1, however since @quasar/app has a single strict dependency on 16.3.1, this will break every install that has 3.0.2 and up since it will install webpack 5.48.

Is there a reason @quasar/app is locked to vue-loader@16.3.1? Why is that constraint so strict?

@rstoenescu
Copy link
Member

Should work with "@quasar/app" v3.0.4.

I keep on explaining why deps are so strict: because we got burnt so much in the past by third-party libs doing breaking changes in non-major versions (yeah!) or introducing various bugs or regressions. We test the setup before we ship q/app so you won't have to and everything will just work out of the box.
However, this is a particular scenario. We can't pin webpack (due to some issues upstream) so in this case a new webpack version broke something in vue-loader...

@MatthewSH
Copy link
Author

MatthewSH commented Aug 2, 2021

@rstoenescu thanks for pushing that update!

I don't know the history of quasar with those deps as I just found and started using it last week, however I do understand that feeling of people not adhering to semver and pushing breaking changes on the minor version.

I think this brings up a bigger issue with vue-loader in general requiring an internal webpack file, and because webpack pushed 5.48 this morning it broke any installs.

Thanks for being so quick about it! Glad we could get this resolved. ❤️

@christiaangoossens
Copy link

Gotta love it when you did the exact same thing as yesterday evening and everything breaks, Google has no answers, but through some random Github issues you find out that lots of other people did the exact same, just minutes ago.

Thanks @rstoenescu for the fix ❤

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants