Interesting take by the folks at nystudio107: instead of installing things such as node
locally, why not run it in a container with an alias linked to it?
Instead of installing all of the tools & packages you’re used to using, we use Docker images that someone else has created that contain these tools & packages.
In order to seamlessly provide access to various tools run via Docker, we’re going to use shell aliases.
For example, to have various node
versions available, set up these aliases:
alias node='docker run --rm -it -v "$PWD":/app -w /app node:18-alpine '
alias node16='docker run --rm -it -v "$PWD":/app -w /app node:16-alpine '
alias node14='docker run --rm -it -v "$PWD":/app -w /app node:14-alpine '
With that set up, you can run node script.js
as you’d normally do.
Same can be done for other node
versions, npm
, composer
, deno
, …
This is what I’ve been doing for a while, specifically with Node since I hate having it installed in my system but sometimes need to run some commands with it.