electron-userland / electron-webpack

Scripts and configurations to compile Electron applications using webpack
https://webpack.electron.build/
906 stars 171 forks source link

Looking for maintainers! Or use Vite to develop your Electron application #428

Open shahkeyur opened 3 years ago

shahkeyur commented 3 years ago

Hello everyone,

Personally, I like this project. It makes life easier when it comes to adding webpack to a project without writing all those messy scripts by yourself. And so far this project has already got a lot of support. It's sad that we don't have any active maintainers now.

There seems to have enough interest from the community to send pull requests and open new issues. We are finding for active maintainers who can look after PRs, issues and publising to npm.

As the electron has a lot of new changes and webpack is upgraded to version 5. This change has to be adopted with this repository.

I am using this in my project every day for more than a year now, so I am willing to be a maintainer, but I have pretty tight schedules so sometimes I may not have enough time to develop it, I can definitely look into issues and testing.

Giving a shout out to those who have contributed to the project and still showing support.

If anyone else is interested, please feel free to post here.

Eli-Black-Work commented 3 years ago

For anyone interested in the backstory behind this issue, please see https://github.com/electron-userland/electron-webpack/issues/408, especially https://github.com/electron-userland/electron-webpack/issues/408#issuecomment-774442317

Tagging @develar so that he sees this new thread.

Eli-Black-Work commented 3 years ago

Also, tagging people that look like they're existing maintainers, so that they see this issue 🙂

@SentoxAIO @loopmode @adam-lynch @akozhemiakin

akozhemiakin commented 3 years ago

@Bosch-Eli-Black I'm not an existing maintainer, in terms that I haven't any permissions on this repo, just made one contribution :)

However, in my company we use electron-webpack in one of our projects and it still works well for us. Thanks to all authors and contributors 👏

loopmode commented 3 years ago

I used electron-webpack for a company project in...i believe... 2016. However, it all went so well that the project was finished in 6 weeks. Basically, since that, I never had to professionally work with electron again. I tried to help people with their issues tho.

What I want to say is: it's a very good thing if you work with electron-webpack in your company, as that gives much more incentive to look after the project and keep it going. However, it's even better when that's a long-term project, or a a company that does several electron projects, and not just a single instance like in my case.

michael-erskine commented 3 years ago

I'd love to be a maintainer but I'm not really smart enough; and I'm sure plenty of other users in the community feel the same way. The project makes a bold statement up front: "Because setting up webpack in the electron environment shouldn’t be difficult.", and that's why it's used by noobs like me: it was easy to get started and everything kinda works! I love it and I'm genuinely thankful that smart folks have given their expertise to create this cool module.

Maybe this summarises the current predicament: a project created for people who aren't technical with webpack is now unmaintained because its community is people who aren't technical with webpack!

That said, I'll gladly do what I can -- I just don't know what that is! 😀

Eli-Black-Work commented 3 years ago

Haha, well said, @michael-erskine 🙂

We ended up using electron-forge. It has a plugin for using it with webpack that seems to work okay but currently only supports Webpack 4.

EDIT I had said that Electron Forge supports Webpack 5, which is incorrect.

develar commented 3 years ago

Nowadays you don't need babel. And Webpack. Modern versions of Chrome and Node support modern syntax and features of JS. You don't need transform your source code in most cases or such transformation maybe be minimised. I suggest to take a look at Vitejs. See https://github.com/cawa-93/vite-electron-builder/ for example. Vitejs provides very fast development and smaller bundles by default (because by default modern node/chrome is targeted).

justin-hackin commented 3 years ago

Given the difficulty of achieving this simple task in vite, I'm not sure it should be presented as an alternative to this library considering the tagline "setting up webpack in the electron environment shouldn't be difficult.". Vite is a complicated build system requiring some advanced knowledge of node scripting in order to grok the electron setup. I think this documentation should at least give some disclaimer that vite does not have the same goals as this project and may be treacherous for new developers. Additionally, the repo could be re-organized so that it follows the same filesystem structure as this project, thus making migration less of a headache.

I thought this library was the defacto standard for electron project builds but it's hard to gauge the impact of deprecating this project. Although there's only 1 npm dependent, most electron apps are not registered on npm and I haven't discovered a way to find all the open source projects that depend on this. I hope the community of dependents can help determine if it is better to improve the vite boilerplate or maintain this library so it's compatible with webpack 5. I can't give an answer with confidence.

I wonder if another project with a similar goal could emerge as a layer ontop of vite instead of webpack...

Thanks to all who have kept this project alive until now and to those who have offered help into the future :)

egll-tech commented 3 years ago

I want to contribute with some changes to the repository as I am facing issues with webpack 5.

loopmode commented 3 years ago

I believe it is worth keeping up, @justin-hackin . However, it needs someone who's working with the technologies involved non-stop and continuously. I wish I were working on electron apps all day. I'd love to spend significant time using, maintaining and improving this library. However I am not working with electron at all, i had one project in 10 years that involved electron.

I haven't tried vite, but it will have similar challenges regarding electron development as webpack: maintain two separate processes for main and renderer in development, while offering a single API and config surface. This project already does that. And it's really not bad. It just lacks passionate maintainers... :)

Eli-Black-Work commented 3 years ago

It looks like @shahkeyur is willing to be a maintainer, and he seems to be active (making posts on the forum, opening pull requests, etc.). Would we be okay with adding him as a maintainer?

loopmode commented 3 years ago

I do believe so. @develar objections?

develar commented 3 years ago

@loopmode I do not see any PR from @justin-hackin except readme update :)

loopmode commented 3 years ago

It was about making @shahkeyur maintainer, @develar

Eli-Black-Work commented 3 years ago

Haha, that's true. I should say "It looks like @shahkeyur is willing to be a maintainer, and he seems to be active (making posts on the forum, opening a pull request, etc.). Would we be okay with adding him as a maintainer?" 🙂

ghost commented 3 years ago

Fingers crossed this project comes back to life. I moved away from Electron to just regular web applications because I couldn't find a solution similar to electron-webpack that wasn't incredibly painful to use.

I'd be willing to offer some of my time and experience to keeping this project alive though I don't think I'd be well suited to being in the primary maintainer role. I know I'm a bit late to the dialog here but I really do love this project and back when I was using it I found it a massive boost to my productivity.

leopucci commented 3 years ago

@shahkeyur I can use some spare time to help maintain too. If we take together on more people it becomes light to everyone. Who else can help?

zhoutwo commented 2 years ago

I would like to help too. Even though I'm not familiar with Webpack 4 or 5, I'd love to spend some time learning the upgrade path because I don't think the other Vite template is easy for me to migrate. It'd be even nicer if there is someone more familiar with this project and/or Webpack who can point me in the right direction of what to start looking at.

alexpineda commented 2 years ago

I would like to help if I can. It would be nice to have a brain dump from some of the original contributors?

mifi commented 2 years ago

With more and more npm packages migrating to ES modules, and Electron not supporting ESM, it is becoming a growing issue that everyone has to repeat the same time consuming and error prone job of setting up a build system, or else we are stuck on old package versions of dependencies (pre-esm). I think all the big companies who use electron are already doing their own transpiling, but none of them have (like facebook did with create-react-app) made a "standard" batteries-included way of building that makes it super easy for anyone to get started with electron. It used to be so easy to make apps with electron, but now it's become a mess unfortunately. :|

Update❗️ I've created a simple build tool in an effort to make it easier to get started with Electron and ES modules: https://github.com/mifi/build-electron

hodgef commented 2 years ago

I tried the Vite alternative proposed, and sadly ran into a bunch of issues.

For those of you in the same situation: here's an Electron 17 boilerplate I set up, using Webpack 5, Babel 7, Typescript and React: https://github.com/hodgef/electron-webpack-boilerplate

Hopefully Electron will work better with Vite/ESM in the future, but Webpack does the job so I will keep using it.

msemtd commented 2 years ago

My company tried Vite as a replacement for electron-webpack and we couldn't find a configuration that would support our product including webassembly components, background worker threads, etc. We found a reasonable way forward with electron-forge + webpack 5, the CLI starter one-liner for which is...

yarn electron-forge init --template=webpack