tighten / takeout

Docker-based development-only dependency manager. macOS, Linux, and WSL2-only and installs via PHP's Composer... for now.
MIT License
1.59k stars 83 forks source link

Add Node.js Service #332

Closed cesarLDsousa closed 5 months ago

cesarLDsousa commented 6 months ago

Hello everyone, I'm Cesar!

I would like to question why Node.js has not yet been incorporated into this project, advocating for this service to Laravel project developers, considering that many stacks will make use of npm. Like Vite, for example. This addition could enhance the efficiency and versatility of our development process, leveraging the strengths of both Node.js and Laravel frameworks. Additionally, it may open up opportunities for utilizing a wider range of tools and libraries available in the Node.js ecosystem, thereby potentially improving project scalability and maintainability.

So... I would like to propose and offer to integrate Node.js into the project. I am willing to take on the responsibility for this task and ensure its seamless integration with the existing codebase. However, if this integration is not feasible at the moment, I would appreciate understanding the reasons behind it.

Thanks!!!! Have a great day!!!

tonysm commented 5 months ago

My current thinking is that Takeout is more about quickly spinning up global services, not runtimes. I'd personally reach for something like Laravel Sail, which ships with the an app container that has both PHP and Node/NPM installed on it.

For instance, right now we create a volume for the services we run with Takeout. The apps don't know about the service's filesystem. If we were adding Node, we'd have to map each app's directory inside the node container so we could run npm on the project. Unless there's another way that I'm not seeing.

mattstauffer commented 5 months ago

I agree with Tony. I could see some value to this, but it also would make some pretty significant changes to how Takeout interact with the parent system, so unless there are any really easy answers there, I think we should just stick to focusing on services that open ports vs. interacting with the filesystem.