{"id":19028686,"url":"https://github.com/researchgate/nodejs-simple-downloader","last_synced_at":"2025-04-23T15:43:49.007Z","repository":{"id":37034020,"uuid":"301472269","full_name":"researchgate/nodejs-simple-downloader","owner":"researchgate","description":"A simple cli downloader for nodejs","archived":false,"fork":false,"pushed_at":"2023-12-18T22:07:21.000Z","size":136,"stargazers_count":5,"open_issues_count":12,"forks_count":1,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-18T00:57:52.133Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","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/researchgate.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-05T16:30:02.000Z","updated_at":"2024-02-18T17:21:07.000Z","dependencies_parsed_at":"2024-06-19T11:30:54.657Z","dependency_job_id":"8de1eb4c-7ee9-4608-bfc2-8f767f7d9263","html_url":"https://github.com/researchgate/nodejs-simple-downloader","commit_stats":{"total_commits":56,"total_committers":5,"mean_commits":11.2,"dds":0.375,"last_synced_commit":"2373cfc086d4b003d503648fb003f0ffeff168bf"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/researchgate%2Fnodejs-simple-downloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/researchgate%2Fnodejs-simple-downloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/researchgate%2Fnodejs-simple-downloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/researchgate%2Fnodejs-simple-downloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/researchgate","download_url":"https://codeload.github.com/researchgate/nodejs-simple-downloader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250462899,"owners_count":21434684,"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":[],"created_at":"2024-11-08T21:12:02.421Z","updated_at":"2025-04-23T15:43:48.985Z","avatar_url":"https://github.com/researchgate.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# nodejs-simple-downloader\n\nThis is a tool that simply downloads the desired version of Node.js and unpacks\nit.\n\n\u003e ⚠️ \u0026nbsp; **Node.JS Apple Silicon support —**\n\u003e Due to the lack of official binaries for `darwin-arm64` (Apple Silicon) architectures for Node.JS versions before 16.0.0, this tool **does not** support downloading any `darwin-arm64` binaries. Instead, it will download the binaries for the `darwin-x64` (Intel Macs) architecture regardless of if the requested version supports Apple Silicon.\n\n## FAQ\n\n### Why?\n\nAlthough there are existing solutions like `nvm`, `n`, `nodenv` and potentially\nmore, all these solutions focus on installing nodejs globally and making it\navailable in the shell environment. In contrast what `node-simple-downloader` does is\nsimply downloading and extracting the desired Node.js version to a specified directory.\nHow the downloaded Node.js version is then used is totally up to the user.\n\nThe use-case that triggered the creation of this tool is that all our nodejs applications\nspecify themselves which version of Node.js they need. This allows app developers to take\ncare of maintaining the local Node.js installation without involvement of system operators.\n\n### Are there more details on how the above mentioned setup looks like?\n\nNot yet. We are currently only planing on migrating away from\n[researchgate/nodejs-installer](https://github.com/researchgate/nodejs-installer/tree/researchgate)\nand haven't finalized how it will work in the end. Once this is done we will share more details.\n\n### Okay, but why golang?\n\nI always wanted to learn `go` and the scope of this tool seemed doable for\nsomeone who hasn't worked with `go` before. So bear in mind that the code is probably not\nstructured and written in the best way possible. If you have suggestions feel\nfree to open PRs. I'm happy to learn how it can be done better.\n\nThe other decision to go with `go` is that having a single executable without a requirement for a\nruntime, interpreter or package manager should make the setup easier in the end.\n\n## Usage\n\n### Node.js\n\n#### With specific version\n\n```bash\nnsd nodejs /path/ --version 12.15.0\n```\n\n#### With specific version from file\n\n`package.json` (exact version in engines field) and `.nvmrc` are currently supported.\n\n```bash\nnsd nodejs /path/ --version-from-file ./.nvmrc\n```\n\n### Yarn (Currently only v1 supported)\n\n#### Full distribution\n\n```bash\nnsd yarn /path/ --version 1.22.5\n```\n\n#### Single file distribution\n\nThis will download the single javascript file and move it into the download directory with the name supplied to `--single-file`\n\n```bash\nnsd yarn /path/ --version 1.22.5 --single-file yarn\n```\n\n#### With specific version from file\n\n`package.json` (exact version in engines field) is currently supported.\n\n```bash\nnsd nodejs /path/ --version-from-file ./package.json\n```\n\n## How to build\n\n\u003e Requires go version 1.15 or newer\n\n- Checkout project\n- Run `go mod tidy`\n- Run `cd nsd \u0026\u0026 go build`\n\n## How to run tests\n\n`cd nsd \u0026\u0026 go test ./...`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fresearchgate%2Fnodejs-simple-downloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fresearchgate%2Fnodejs-simple-downloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fresearchgate%2Fnodejs-simple-downloader/lists"}