{"id":13541356,"url":"https://github.com/Yakiyo/nunvm","last_synced_at":"2025-04-02T08:31:16.152Z","repository":{"id":189235536,"uuid":"679981123","full_name":"Yakiyo/nunvm","owner":"Yakiyo","description":"nvm implemented in nushell","archived":false,"fork":false,"pushed_at":"2023-09-24T05:38:12.000Z","size":69,"stargazers_count":7,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-26T00:36:00.254Z","etag":null,"topics":["nodejs","nushell","nushell-script","nvm"],"latest_commit_sha":null,"homepage":"","language":"Nushell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Yakiyo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-08-18T04:19:14.000Z","updated_at":"2025-01-09T09:45:35.000Z","dependencies_parsed_at":"2023-08-18T22:55:56.397Z","dependency_job_id":"5b618b86-08fe-4ed5-b28c-f99fa1ce1b9a","html_url":"https://github.com/Yakiyo/nunvm","commit_stats":null,"previous_names":["yakiyo/nunvm"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yakiyo%2Fnunvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yakiyo%2Fnunvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yakiyo%2Fnunvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Yakiyo%2Fnunvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Yakiyo","download_url":"https://codeload.github.com/Yakiyo/nunvm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246782113,"owners_count":20832976,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nodejs","nushell","nushell-script","nvm"],"created_at":"2024-08-01T10:00:44.820Z","updated_at":"2025-04-02T08:31:15.522Z","avatar_url":"https://github.com/Yakiyo.png","language":"Nushell","funding_links":[],"categories":["Integrations"],"sub_categories":[],"readme":"# nunvm\n\nNunvm is a rewrite of [nvm](https://github.com/nvm-sh/nvm) in [nushell](https://nushell.sh). Unlike nvm, nunvm is cross-platform, meaning it can run on windows too.\n\n## Installation\nInstallation is easy. Just copy the [nunvm.nu](./nunvm.nu) file and save it in a directory/folder which is added to your system `PATH`.\n\nOn unix systems (linux/mac), you should name the file as `nunvm` (without the extension) and then it can be invoked from the terminal\n```sh\n$ nunvm --version\n```\n\nOn windows, create a `nunvm.bat` file, with the following content, and add that directory to `PATH`\n```bat\nnu nunvm.nu\n```\nBe sure to use the specific path of nunvm.nu file if it does not exist within the same directory as the bat file.\n\n### Post-installation\nFor using the version of Node installaed by nunvm, you need to see the nunvm current directory to your system path. The path can be viewed by running the following command\n```sh\n$ nunvm path\n```\nIf you're using bash/zsh, add the following line to your `.bashrc`/`.zshrc` file:\n```\n$ export PATH=\"$(nunvm path)\":$PATH\n```\nFor powershell, the following can be added to `profile.ps1`\n```powershell\n$Dir = nunvm path\n$User = [System.EnvironmentVariableTarget]::User\n$Path = [System.Environment]::GetEnvironmentVariable('Path', $User)\nif (!(\";${Path};\".ToLower() -like \"*;${Dir};*\".ToLower())) {\n  [System.Environment]::SetEnvironmentVariable('Path', \"${Path};${InstallDir}\", $User)\n  $Env:Path += \";${Dir}\"\n}\n```\n\n## Features\n\n- Cross platform, unlike nvm which only works for unix like systems\n- Is decently fast\n- Some actions are customizable\n- Supports reading from `.nvmrc` file in current directory, similar to nvm\n- All subcommands of nvm like install, uninstall, alias, unalias, list, list-remote are supported\n- nunvm symlinks directories for setting active node versions whereas nvm uses shiming\n\n### Cons\n- nunvm requires some tools be preinstalled. This may be solved in the future when [nupm](https://github.com/nushell/nupm) becomes stable and it is easier to install third-party modules/scripts that can be used instead of system apps. The required necessities are as follows\n    - on unix system, it requires the `ln` tool for creating/removing symlinks and requires `tar` for extracting archives\n    - on windows, powershell is required for extracting from archives and the `mklink` tool for creating symlinks\n- On windows, the `use` subcommand of nunvm requires elevated privileges, because the `use` command deletes the previous symlink, if any, and that requires elevated privileges. So when using `nunvm use`, users might need to run the terminal with admin privileges. This issue has been found for windows for now, unsure about linux/mac\n- nunvm is still not thoroughly tested so bugs may prevail\n\n## Usage\nUsing nunvm is similar to nvm. \n\nFor installing a version of node, do\n```sh\n$ nunvm install v18.2.1 # install specific version\n\n$ nunvm install --latest # latest version\n\n$ nunvm install --lts # lts version\n\n$ nunv install # install specified version in `./.nvmrc`\n```\n\nFor uninstall, do\n```sh\n$ nunvm uninstall v18.1.0\n```\n\nAliasing and unaliasing can be done with `nunvm alias` \u0026 `nunvm unalias`.\n\nUse `nunvm ls` for listing locally installed version and `nunvm ls-remote` for listing all available node versions.\n\nRun `nunvm use \u003cVERSION\u003e` to set a node version to active. This requires the steps mentioned in [post-installation](#post-installation). If version is unspecified, then it tries to use version from `./.nvmrc`. `VERSION` must be a locally installed one.\n\nFor queries or issues, feel free to open an [new issue](https://github.com/Yakiyo/nunvm/issues).\n\n## NOTE\nThis project was made as a fun project in my free time, and while it works fine as intended, it is not an industry standard tool and no guarantes can be made about it. Using a more trusted tool like [nvm](https://github.com/nvm-sh/nvm) or [nvm-windows](https://github.com/coreybutler/nvm-windows) for production grade apps should be prefered.\n\n## Author\n\n**nunvm** © [Yakiyo](https://github.com/Yakiyo). Authored and maintained by Yakiyo.\n\nReleased under [MIT](https://opensource.org/licenses/MIT) License\n\nIf you like this project, consider leaving a star ⭐ and sharing it with your friends and colleagues.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYakiyo%2Fnunvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FYakiyo%2Fnunvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FYakiyo%2Fnunvm/lists"}