Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "monorepo"
-
I will die younger because of node packages
It's like quantum mechanics, so undeterministic, even with yarn.lock, I had this meeting to demo software and I was ready for 2 min past the meeting time, having worked nearly all night to save monorepo yarn workspaces issues where some module has peer dependency it shouldn't have and some other module installed a newer version of a package which broke another module with another version of the same package, one module checks if it's got an instanceof another package, but it returns false because it's another version of the same package that created it so X !== X.
I nearly had a nervous breakdown and my node modules won't fix when I remove all node_modules in the yarn+lerna monorepo and reinstall from scratch... it's like seeing ghosts with these errors all works for months and then a butterfly splashes its wings near 1 node module and the entire app fails apart.
:'''(2 -
GraphQL- It makes API development to next level.
MonoRepo - Still I'm wondering how people are maintaining. :) -
I feel there aren't enough tutorials on "best practices" when it comes to combining server/client tooling in a monorepo.
Having done so this weekend, the tasks involved were:
* using graphql w/ express to serve requests and expose a "graphiql" ide instance
* differentiating build steps in prod vs. dev
* applying middleware in prod vs. dev
* working with a single heroku dyno
Still missing:
* hot reloading
* my general sense of direction -
A mix of both python 2 and python 3. 4 entry points (although, this was done for the sake of microservices).
All in 1 big monorepo. Hosting a site in mostly static form (i.e each page had it's own index.html with completely different headers and footers, no templates). -
Please excuse the "photo of my monitor" picture, but it really was the easiest way to do this...
So, I'm finally getting around to that to-do list item of wrapping my head around Nrwl Nx workspaces, and I stumbled onto this little gem: https://itnext.io/easy-typescript-m...
I didn't take long for the "what the fuck" moments to start cropping up, and then I decided to check what comments might have been left on Daily.dev regarding this one (see attachment).
THAT little nugget there is what led me to the ultimate "what the actually fuck" moment, which is only truly appropriate for DevRant..
Create an Nx workspaces, only to initialise a project with `npm` directly, using a path under a new `libs` folder, next to the `packages` folder, only to build the library, and literally install it into the Nx workspace's `node_modules` folder, b order to import it into the app that exist in the same workspace.
So, seriously.. like.. WHAT THE ACTUAL FUCK? What is this guy smoking?? I need to know so I can stay the fuck away from it! Wow. My brain hurts now.7 -
Fuck nrwl.
This stupid puddle of barf software that gets talked over like it's the shit. Nothing remotely useful works when using it. It always craps out some dumb exceptions that have nothing to do with your actual code but the dumb fuck, that didn't have the brain cells to think half a step ahead when doing his job.
It's just a buggy, mostly useless piece of shit that some guys in nice suits sell like it's jesus 2.0.
I hope you burn in hell.
I haven't been this mad since a looong time.2 -
So apparently my code went to prod more or less all right. Phew, the deadline was this week-end. This project have been sitting there for month, they gave me the technical requirement and never bothered to ask the stakeholders about it. When the contract went in, they started to freak out it wasn't usable.
The thing is, this project had way more moving part and trying to threat video in the frontend is not the easiest. But now is REFACTOR TIME.
I dream of getting rid of the browser video api (too flaky), download the bitmap directly and render it in requestAnimationFrame. I call it just-in-time rendering. I think i'd need to put a decoder in aws, I did it already with ffmpeg. I could not manage to put it in streaming mode though, so it was still a bit slow, but i could decode, write and re-encode faster than the video player speed.
What do you lads think? Doable or not? I at least need to general tidy up (this codebase have grown organically without any fucking direction from above, like this project took all my time on the technical side, I did not have time to run after people to get specs), centralizing state, improve monorepo and tooling, perfs,...
Hopefully they understood i cant keep adding whatever feature they want today. -
Any recommendations and tips for monorepo setups to share stuff between multiple typescript nuxtjs projects for the frontend and some nestjs backend ones? And all applications are deployed in docker containers.
I feel like I'm going crazy, everything I try is broken, or not fully implemented, or has a shitton of gotchas and customization that must be done on a case by case basis.
This is the most unfun shit I've done in a while.1 -
since we have go mod I believe that if you are doing microservices or fracturing a monolith app into microservices for that matter, you rather have a monorepo. I'm finding really useful to do `import ("backend/monolith" "backend/notify")` and such than sharing protobuf files by copying with some Makefile target.