[WIP] Phase 1 Case Study #20
thescientist13
started this conversation in
General
Replies: 1 comment
-
Round 1 of Lighthouse taken at commit 99ef6ed |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Overview
Just using this discussion to track some general thoughts and observations as part of migrating www.analogstudios.net from Angular -> Greenwood + Lit (e.g. Web Components). i had used Bootstrap + Font Awesome at the time for styling, and so that will stay the same as well. Using this issue to track the before and after and grouping it all here.
While the migration will take a few iterations, the specific scope of Phase 1 was to:
Over time, the plan will be to
Bundle Size and Performance (Production)
4.3 MB! 😱 (what was I thinking!)
ng2-lighthouse-report.pdf
Adopting Lit
So this part was pretty easy as Angular components are classes and this maps well to Web Components since they are also classes. All the business logic and methods and lifecycles were super easy
Before
After
As far as the Angular CLI and TypeScript, this project uses a general purpose web framework I've been working on called Greenwood that provides all the basic development workflows and have even been able to create a TypeScript plugin for the project, though I am still in progress on a SASS one. Personally, I would like to avoid any CSS processing at all other than for some simple PostCSS plugins to preserve for now I will have to source my own SASS plugin, which I've already started on.
Opportunities and Action Items
CSS and Theming
See #28
So this part was definitely the thorniest, and mostly I would say to how spoiled we all got with bundler tools letting you
import
anything in JavaScript and it would "just" work. While that's super convenient and certainly hve been a beneficiary of that, it rarely translates well outside of its ecosystem which while is fair, captures the spirit of why I started Greenwood in the first place, to address the vendor lock-in that is pervasive amongst frontend tools and frameworks today, especially of the meta variety.So while getting all this "legacy" code to work, which itself is just CSS has been challenging, it provide an opportunity to try and see if there is a way to make the experience better. I am tracking some of these ideas down at the Greenwood level.
ProjectEvergreen/greenwood#763
Opportunities and Action Items
DX
TODO
Beta Was this translation helpful? Give feedback.
All reactions