colinskow / angular-electron-dream-starter

:tada: An Angular Electron Starter kit featuring Webpack, Angular 4 (Router, Http, Forms, Services, ngrx, Tests, E2E, Coverage), Karma, Spectron, Jasmine, Istanbul, and TypeScript
MIT License
162 stars 54 forks source link

Angular 6 Upgrade #29

Open readme42 opened 6 years ago

readme42 commented 6 years ago

Thanks for this great seed.

Angular 5 was released and I would love to know the plans of supporting angular 5 in the near future. As ngc-webpack was updated by wrapping ngtool/webpack, this should be feasible without too many changes.

Or maybe its better to wait until angular-starter has finished the migration?

Thanks a lot for sharing your plans :)

colinskow commented 6 years ago

I'm going to wait and see what angular-starter does. Although I am seriously considering using an ejected angular-cli project as a base to completely redo the build system. When I first forked angular-starter the CLI had serious limitations, but with Angular 5 it has come out ahead.

Kaffiend commented 6 years ago

I agree with the ejected cli. It's more viable now, and could simplify some of the intricacies this seed uses to build.

greg9504 commented 6 years ago

Any more thoughts on this. I see that angular-starter has moved to angular 5.

utd1878 commented 6 years ago

Any chance we could see this happen?

greg9504 commented 6 years ago

I can offer to help, but my contribution may be limited to testing.

colinskow commented 6 years ago

This is going to need to go directly to Angular 6. We really need to figure out how to integrate this directly with Angular CLI since the ng eject option is now disabled. Electron security generally requires that the bundle be served from file:// rather than http.

We'll have to use something like this: https://github.com/angular/angular-cli/wiki/stories-disk-serve

Any ideas to get it working with hot reload?

utd1878 commented 6 years ago

I'd really like to assist and i can help where needed. However, just reading that last post, its clear my level of knowledge on how angular and electron work with one another isnt at the level of providing proper suggestions.

That being said, im always willing to learn if you wanted to out me to work.

govi2010 commented 6 years ago

@colinskow I already have upgrade angular-starter to angular 6. If you need help then I can complete this on week end or latter.

I already have angular-starter with angular 6 + electron code base. If you need help let me know. There will be lots of changes in web-configs.

govi2010 commented 6 years ago

https://github.com/gdi2290/angular-starter/tree/feature/migrate-to-webpack4 Here is link.

utd1878 commented 6 years ago

@govi2010 are you saying you have this app converted or another similar app?

govi2010 commented 6 years ago

@utd1878 I have implemented electron on angular-starter for my client. It is not open source.

utd1878 commented 6 years ago

@govi2010. That’s awesome. I’ve attempted, with my limited knowledge to upgrade this app and have failed miserabely. If you’re able to find the time to get this repo upgraded, not only would I be grateful, but more interested in what needed to change to get it to work.

colinskow commented 6 years ago

@govi2010 it is a pain to have to maintain Webpack config files every time a version changes. I would like for the client to be built via angular-cli (not ejected) so that it can be upgraded any time with ng upgrade.

This means running ng serve --watch in a spawned thread and listening for webpack: compiled successfully in stdout to trigger Electron reload. This must be done inside the config/electron-dev.js file. Much easier, in my opinion, then hacking complex config files!

govi2010 commented 6 years ago

@colinskow
I agree with you. But today we say it should be simple by doing ng upgrade. But we can not predict tomorrow what angular team going to do.

In this Rapidly changing Front-end technologies nothing is permanent.

I agree your solution today for simple projects. As I have many project build on angular starter I am using that. People who know web-pack well will always like keep control in their hand.

For straight forward projects with web+desktop who want to use angular renderer process only will prefer to use angular-cli .

But for Complex project which required main process and renderer should go with custom webpack configs.

Let discuss and decide best solution for future of this repository. I am ready to help on week ends.

Thank you.

greg9504 commented 6 years ago

@colinskow don't know if you have seen: https://github.com/meltedspark/electron-angular-native I haven't looked too closely at it however I believe it does use ng-eject with Angular 5.2, so perhaps not useful for the current discussion.

utd1878 commented 6 years ago

Was anyone able to find some time to see what it would take for this to be updated to 6?

colinskow commented 6 years ago

So I've looked into the options. This repo was originally created in the very early days of Angular CLI when it had a lot of problems, and a custom Webpack configuration was necessary. Now Angular CLI does everything 95% of developers need, and there's the eject function for everyone else.

I believe the best way to move forward is for me to deprecate this project and build a new repo from scratch using a fresh Angular CLI project, and then adding just the necessary Electron functionality. The result will be a project much simpler, and easier to maintain and upgrade.

I will post a link to the new project here when it is ready.

colinskow commented 6 years ago

If anyone needs Angular 6 support now, this repo is awesome. It's missing many bells and whistles we have here, but should work... https://github.com/maximegris/angular-electron

colinskow commented 6 years ago

The direction I'm looking at now is to build a schematic for Angular Electron applications which will extend CLI functionality. The entire build process will also be handled by CLI. https://medium.com/@tomastrajan/%EF%B8%8F-how-to-create-your-first-custom-angular-schematics-with-ease-%EF%B8%8F-bca859f3055d

utd1878 commented 6 years ago

@colinskow That sounds great. I look forward to seeing this repo upgraded to 6 and a schematic

junebug12851 commented 5 years ago

I'd like to see documentation on how to take an existing project and implement these features. Even just general documentation to point me in various directions will suffice and unlike projects, even out of date documentation can often be figured out.

I'd much rather 10 times over understand what I'm doing, understand how the these features are implemented, and be able to tailor them into my existing larger projects using my understanding and tweak them to fit the different projects unique setup and structure than to download a ready made package for new projects which has to keep sharply up-to-date with the rest of the tech world or risk falling unusably behind quickly with little hope of resurfacing.

This project looks amazing and I already want to just jump in and use it but I can see the last commit was close to a year ago, it's fallen very far behind, theres lots of talk the past few months on resurfacing it with the latest technology but so far only a link to a slightly stripped version that's up to date and talk of starting over with a totally different direction using schemas which sounds really awesome by the way from what I understand about schemas.

But coming from an existing project maintainer on some larger private projects hosted elsewhere that use codeclimate and travis and other code quality and testing services it doesn't help me in the now because it's an existing project, the project structures and needs are somewhat unique meaning I would have to tailor the features anyways requiring deeper understanding on my part, and so it's just far more beneficial for me to reference documentation however vague, specific, outdated, or up-to-date they may be.

Unfortunately even now theres very poor information out there on how to get these features yourself into a project and honestly this is the only solution of any kind I've literally seen thus far. I thought maybe I could take it apart but I would have to invest far more time than I have to learn the project throughout and learn how everything is implemented.

For now I'm going to stick to just Angular without electron but I wish you guys best of luck, project looks completely amazing even though it's out-of-date and can't wait to see the new and revised version but definitely get some documentation up in the wiki for how these features are implemented to help those who can't drop in a new project template and have to work on the larger and more complicated projects.

govi2010 commented 5 years ago

@junebug12851 Let me know if you need help

utd1878 commented 5 years ago

@colinskow you'd mentioned about reseeding this from scratch and adding just the necessary electron components. Have you been able find time to get that going?

utd1878 commented 4 years ago

Been a while so I'm assuming there aren't any cool updates to consume? :)