[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5375":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":36,"lastSyncTime":37,"discoverSource":38},5375,"fnm","Schniz\u002Ffnm","Schniz","🚀 Fast and simple Node.js version manager, built in Rust","https:\u002F\u002Ffnm.vercel.app",null,"Rust",25906,631,62,155,0,9,67,421,44,43.4,"GNU General Public License v3.0",false,"master",true,[27,28,29,30,31,32],"hacktoberfest","javascript","nodejs","nvm","reasonml","version","2026-06-12 02:01:09","\u003Ch1 align=\"center\">\n  Fast Node Manager (\u003Ccode>fnm\u003C\u002Fcode>)\n  \u003Cimg alt=\"Amount of downloads\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002FSchniz\u002Ffnm\u002Ftotal.svg?style=flat\" \u002F>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FSchniz\u002Ffnm\u002Factions\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002FSchniz\u002Ffnm\u002Frust.yml?branch=master&label=workflow\" alt=\"GitHub Actions workflow status\" \u002F>\u003C\u002Fa>\n\u003C\u002Fh1>\n\n> 🚀 Fast and simple Node.js version manager, built in Rust\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\".\u002Fdocs\u002Ffnm.svg\" alt=\"Blazing fast!\">\n\u003C\u002Fdiv>\n\n## Features\n\n🌎 Cross-platform support (macOS, Windows, Linux)\n\n✨ Single file, easy installation, instant startup\n\n🚀 Built with speed in mind\n\n📂 Works with `.node-version` and `.nvmrc` files\n\n## Installation\n\n### Using a script (macOS\u002FLinux)\n\nFor `bash`, `zsh` and `fish` shells, there's an [automatic installation script](.\u002F.ci\u002Finstall.sh).\n\nFirst ensure that `curl` and `unzip` are already installed on your operating system. Then execute:\n\n```sh\ncurl -fsSL https:\u002F\u002Ffnm.vercel.app\u002Finstall | bash\n```\n\n#### Upgrade\n\nOn macOS, it is as simple as `brew upgrade fnm`.\n\nOn other operating systems, upgrading `fnm` is almost the same as installing it. To prevent duplication in your shell config file, pass `--skip-shell` to the install command:\n\n```sh\ncurl -fsSL https:\u002F\u002Ffnm.vercel.app\u002Finstall | bash -s -- --skip-shell\n```\n\n#### Parameters\n\n`--install-dir`\n\nSet a custom directory for fnm to be installed. The default is `$XDG_DATA_HOME\u002Ffnm` (if `$XDG_DATA_HOME` is not defined it falls back to `$HOME\u002F.local\u002Fshare\u002Ffnm` on linux and `$HOME\u002FLibrary\u002FApplication Support\u002Ffnm` on MacOS).\n\n> **Note:** On macOS, this option is only meaningful when using `--force-install` since Homebrew is the default installation method.\n\n`--skip-shell`\n\nSkip appending shell specific loader to shell config file, based on the current user shell, defined in `$SHELL`. e.g. for Bash, `$HOME\u002F.bashrc`. `$HOME\u002F.zshrc` for Zsh. For Fish - `$HOME\u002F.config\u002Ffish\u002Fconf.d\u002Ffnm.fish`\n\n`--force-install`\n\nmacOS installations using the installation script are deprecated in favor of the Homebrew formula, but this forces the script to install using it anyway.\n\nExample:\n\n```sh\ncurl -fsSL https:\u002F\u002Ffnm.vercel.app\u002Finstall | bash -s -- --install-dir \".\u002F.fnm\" --skip-shell\n```\n\n### Manually\n\n#### Using Homebrew (macOS\u002FLinux)\n\n```sh\nbrew install fnm\n```\n\nThen, [set up your shell for fnm](#shell-setup)\n\n#### Using Winget (Windows)\n\n```sh\nwinget install Schniz.fnm\n```\n\n#### Using Scoop (Windows)\n\n```sh\nscoop install fnm\n```\n\nThen, [set up your shell for fnm](#shell-setup)\n\n#### Using Chocolatey (Windows)\n\n```sh\nchoco install fnm\n```\n\nThen, [set up your shell for fnm](#shell-setup)\n\n#### Using Cargo (Linux\u002FmacOS\u002FWindows)\n\n```sh\ncargo install fnm\n```\n\nThen, [set up your shell for fnm](#shell-setup)\n\n#### Using a release binary (Linux\u002FmacOS\u002FWindows)\n\n- Download the [latest release binary](https:\u002F\u002Fgithub.com\u002FSchniz\u002Ffnm\u002Freleases) for your system\n- Make it available globally on `PATH` environment variable\n- [Set up your shell for fnm](#shell-setup)\n\n### Removing\n\nTo remove fnm (😢), just delete the `.fnm` folder in your home directory. You should also edit your shell configuration to remove any references to fnm (ie. read [Shell Setup](#shell-setup), and do the opposite).\n\n## Completions\n\nfnm ships its completions with the binary:\n\n```sh\nfnm completions --shell \u003CSHELL>\n```\n\nWhere `\u003CSHELL>` can be one of the supported shells:\n\n- `bash`\n- `zsh`\n- `fish`\n- `powershell`\n\nPlease follow your shell instructions to install them.\n\n### Shell Setup\n\nEnvironment variables need to be setup before you can start using fnm.\nThis is done by evaluating the output of `fnm env`.\n\n> [!TIP]\n> Prefer passing an explicit shell (for example `fnm env --shell bash`) instead of relying on shell inference at runtime. It is a bit faster and avoids process tree detection.\n\n> [!NOTE]\n> Check out the [Configuration](.\u002Fdocs\u002Fconfiguration.md) section to enable highly\n> recommended features, like automatic version switching.\n\nAdding a `.node-version` to your project is as simple as:\n\n```bash\n$ node --version\nv14.18.3\n$ node --version > .node-version\n```\n\nCheck out the following guides for the shell you use:\n\n#### Bash\n\nAdd the following to your `.bashrc` profile:\n\n```bash\neval \"$(fnm env --use-on-cd --shell bash)\"\n```\n\n#### Zsh\n\nAdd the following to your `.zshrc` profile:\n\n```zsh\neval \"$(fnm env --use-on-cd --shell zsh)\"\n```\n\n#### Fish shell\n\nCreate `~\u002F.config\u002Ffish\u002Fconf.d\u002Ffnm.fish` and add this line to it:\n\n```fish\nfnm env --use-on-cd --shell fish | source\n```\n\n#### PowerShell\n\nAdd the following to the end of your profile file:\n\n```powershell\nfnm env --use-on-cd --shell powershell | Out-String | Invoke-Expression\n```\n\n- For macOS\u002FLinux, the profile is located at `~\u002F.config\u002Fpowershell\u002FMicrosoft.PowerShell_profile.ps1`\n- For Windows location is either:\n  - `%userprofile%\\Documents\\WindowsPowerShell\\Microsoft.PowerShell_profile.ps1` Powershell 5\n  - `%userprofile%\\Documents\\PowerShell\\Microsoft.PowerShell_profile.ps1` Powershell 6+\n- To create the profile file you can run this in PowerShell:\n  ```powershell\n  if (-not (Test-Path $profile)) { New-Item $profile -Force }\n  ```\n- To edit your profile run this in PowerShell:\n  ```powershell\n  Invoke-Item $profile\n  ```\n\n#### Windows Command Prompt aka Batch aka WinCMD\n\nfnm is also supported but is not entirely covered. You can set up a startup script for [cmd.exe](https:\u002F\u002Fsuperuser.com\u002Fa\u002F144348) or [Windows Terminal](https:\u002F\u002Fsuperuser.com\u002Fa\u002F1855283) and append the following lines:\n\n```batch\n@echo off\n:: for \u002FF will launch a new instance of cmd so we create a guard to prevent an infnite loop\nif not defined FNM_AUTORUN_GUARD (\n    set \"FNM_AUTORUN_GUARD=AutorunGuard\"\n    FOR \u002Ff \"tokens=*\" %%z IN ('fnm env --use-on-cd') DO CALL %%z\n)\n```\n\n#### Usage with Cmder\n\nUsage is very similar to the normal WinCMD install, apart for a few tweaks to allow being called from the cmder startup script. The example **assumes** that the `CMDER_ROOT` environment variable is **set** to the **root directory** of your Cmder installation.\nThen you can do something like this:\n\n- Make a .cmd file to invoke it\n\n```batch\n:: %CMDER_ROOT%\\bin\\fnm_init.cmd\n@echo off\nFOR \u002Ff \"tokens=*\" %%z IN ('fnm env --use-on-cd') DO CALL %%z\n```\n\n- Add it to the startup script\n\n```batch\n:: %CMDER_ROOT%\\config\\user_profile.cmd\ncall \"%CMDER_ROOT%\\bin\\fnm_init.cmd\"\n```\n\nYou can replace `%CMDER_ROOT%` with any other convenient path too.\n\n## [Configuration](.\u002Fdocs\u002Fconfiguration.md)\n\n[See the available configuration options for an extended configuration documentation](.\u002Fdocs\u002Fconfiguration.md)\n\n## [Usage](.\u002Fdocs\u002Fcommands.md)\n\n[See the available commands for an extended usage documentation](.\u002Fdocs\u002Fcommands.md)\n\n## Contributing\n\nPRs welcome :tada:\n\n### Developing:\n\n```sh\n# Install Rust\ngit clone https:\u002F\u002Fgithub.com\u002FSchniz\u002Ffnm.git\ncd fnm\u002F\ncargo build\n```\n\n### Running Binary:\n\n```sh\ncargo run -- --help # Will behave like `fnm --help`\n```\n\n### Running Tests:\n\n```sh\ncargo test\n```\n","fnm 是一个快速且简单的 Node.js 版本管理工具，使用 Rust 语言构建。其核心功能包括跨平台支持（macOS、Windows 和 Linux）、单文件安装与即时启动、以及对 `.node-version` 和 `.nvmrc` 文件的支持。fnm 旨在提供高性能，特别适合需要频繁切换不同 Node.js 版本的开发环境。无论是个人开发者还是团队协作，fnm 都能通过其简洁高效的特性提升工作效率。",2,"2026-06-11 03:02:56","top_language"]