montogeek

montogeek

Hi!

I was going to post this in GitHub but I think it is better here.
Would you accept a PR to upgrade to webpack 5?

Cheers!

Showing Posts 1 to 10

mindok

mindok

I’d say post to github (raise an issue with the offer of the PR) or the appropriate slack channel…

outlog

outlog

webpack5 is brand new - so it could be a stopper for people at present as the whole eco system has to catch up..

say I do phx new (that includes webpack5), and then want to drop in a react SPA, I’ll run into webpack5 issues.. so I would probably say some 6 months, before the entire system has caught up..

(that said a PR, showing how simple/complex the upgrade is would be awesome..)

montogeek

montogeek OP

Will create it then :slight_smile:

outlog

outlog

just be to clear I have no saying in PR/merging for phoenix, but from experience there is a philosophy of keeping the phoenix webpack config as simple/minimal as possible, so strive for that, and go for minimal changes/complexity/features..

webuhu

webuhu

@montogeek I could assist the PR.

hard-source-webpack-plugin could be removed in my understanding with webpack v5.
In dev.exs --watch-stdin needs to be replaced with --watch + --watch-options-stdin.

In case for keeping it as simple/minimal as possible,
I would propose to replace additionally within package.json:

  "repository": {},
  "description": " ",
  "license": "MIT",

with

"private": true,

Very opinionated, as I think webpack is to verbose,
I always also add --stats errors-only for deploy
and --stats minimal for development to the webpack commands.

ondrej-tucek

ondrej-tucek

Well, from my recently experience with webpack 5, when I replaced --watch-stdin to --watch --watch-options-stdin then watching files for updates stopped working. For instance, when I changed some content of css/scss/… no compilation happened. So I ended up only with --watch, but a few deprecation warning shown during compilation. Also if you use mini-css-extract-plugin you have to add publicPath. In my case was successful

...
test: /\.(sass|scss|css)$/,
use: [
  {
    loader: MiniCssExtractPlugin.loader,
    options: {
      publicPath: '/',
    }
  },
...
polypush135

polypush135

Wepack 5 breaks the way I was chunking my file names. :frowning:

Specifically, Output.chunkFilename is dead, hard-source-webpack-plugin is broken
And I’ve had to fix the way I bundle wasm and how I resolve two libs now that they don’t include the core nodejs libs.

https://github.com/MorphicPro/morphic.pro/pull/254/files#diff-d39fdca60f5c65460eef279b514c898ded5b0ac5eab453ab1d4fe9d54032a2dbR28-R39

At the end of the day Output.chunkFilename has prevented me from fully upgrading because I’m not sure how to still bundle out my vendor.bundle.js and it now looks to just be broken.

I really hate webpack.

montogeek

montogeek OP

I won’t work on this, discouraged by these statements:

I really hate webpack.

Feel free anybody to pick it.

mindok

mindok

I think you should be encouraged rather than discouraged! I think many of us have been frustrated with webpack from time to time and that frustration can result in saying something without thinking about the consequences. I personally find it difficult to work with. But it is an essential part of modern web apps so I’m delighted that someone is putting their hand up to smooth out the bumps of a version upgrade.

polypush135

polypush135

Imagine you lived in a world where everyone massaged everyone’s ego because everyone was too sensitive to say what they really feel. Yeah, I hate webpack, Who fucking cares. And guess what, It’s possible to make bad software and it’s possible that software causes real pain for their users. Any good dev knows the first rule to good design is to be empathetic so if anything I’m doing the devs of Webpack a favor by not sugar-coating how painful the process currently is. That should be in its self an indication that more energy really should go to identify the problems they cause for their users otherwise they may not have users to care anymore. And if you are so sensitive that the mention of dislike persuades you from trying then boy you are in the wrong industry. Everyone will hit these points in their dev career, try to move past the small talk and not be so squishy.

Also in my context I’m not using the default Phoenix webpack config, because I like to chunk out my vendor and my app into separate files which is where I currently hit the wall. So your efforts will not be likely impacted by the issues I’ve identified.

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 92995 915
New
AstonJ
The obligatory hello world thread! Who are you and where are you from? :stuck_out_tongue:
4616 55835 594
New
caslu
I want to open this thread for you all to discuss and help those who really like Ash but are still hesitant to use it in a real project. ...
New
arcanemachine
I was working on an Ecto migration and I needed a timestamp. So, for the nth time, I looked up the different data types for timestamps, a...
New
alexslade
Fly’s CEO posted this recently - Turn And Face The Strange · The Fly Blog It says that Fly is going all-in on sprites, which is a worry ...
New
Herve37
We’re evaluating API mocking tools for OpenAPI-based projects and would love to hear what other teams are using. We’re particularly inte...
New
matt-savvy
Is there a word for the ~> symbol used in Version strings? Do you also just call it a Squiggle Arrow™ ?!
New

Other Trending Topics Top

garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mcass19
ExRatatui lets you cook up rich terminal UIs in Elixir, powered by Rust’s ratatui via Rustler NIFs. Build interactive terminal applicatio...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
wintermeyer
There are three potential reasons for members of this forum to have a look at https://vutuv.de You are tired or annoyed of LinkedIn. Yo...
New
webofbits
Aludel - LLM Evaluation Workbench Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews