-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
22 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,29 @@ | ||
# dn | ||
**D**ocker powered **N**ode.js version manager | ||
|
||
## What? | ||
A version manager for Node.js which uses docker containers for isolation. | ||
|
||
## Why? | ||
- I want to run and build Node.js apps in complete isolation and I don't want to explicitly invoke docker for every little thing. | ||
- I wanted to see what it takes to build batteries-included well documented cli application in bash (this still has some way to go but I think I've done pretty well so far.) | ||
|
||
## Getting started | ||
- [Install Docker](https://docs.docker.com/desktop/#download-and-install) | ||
- Clone this repo | ||
- Invoke `./dn.sh -h` to get started. | ||
- Install the script `./dn.sh install` | ||
- Run `dn --help` and take it from there | ||
|
||
## Inspiration | ||
- [tj/n](https://github.com/tj/n) | ||
- [jenv](https://github.com/jenv/jenv) | ||
- Docker | ||
|
||
## Compared with n | ||
Whenever you switch node versions in `n`, it removes the previous version and installs the new one on your machine. `dn` does not touch your existing node installation. Instead, it pulls the official node alpine docker images and runs your commands in containers. | ||
|
||
## Limitations | ||
Currently limited to whatever comes with `node:X-alpine` docker image. So, if you have a fancy build process which requires special dependencies then this manager cannot support it yet. | ||
- Currently limited to whatever comes with `node:X-alpine` docker image. So, if you have a fancy build process which requires special dependencies then this manager cannot support it yet. | ||
- Performance, especially start up, can be a bit slower since we're running in Docker. | ||
- No terminal tab completion yet. | ||
- Tested on Ubuntu, Mac, bash and zsh only. |