原始的 nvm 是一个完全独立的仅适用于 Mac/Linux 的项目。 本项目采用了完全不同的理念,并非仅仅是 nvm 的克隆版。详情请参阅为什么需要另一个版本管理器?和有什么重大区别?。
</details> </div> <h5 align="center">赞助商</h5> <div align="center"> <table cellpadding="5" cellspacing="0" border="0" align="center"> <tr> <td><a href="https://linkedin.com/company/authorsoftware"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/c4d51ec1-afce-4ae1-8318-78c91f2a1d6c.png" width="200px"/></a></td> <td><a href="https://enabledb.com"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/22c0b13b-e080-435e-8fe4-a84581c1019d.png" width="200px"/></a></td> <td><a href="https://butlerlogic.com"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/b69dc9db-bc17-4c14-b7b1-b03a823faf10.png" width="200px"/></a></td> <td width="25%" align="center"><a href="https://github.com/microsoft"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/f0795455-42e2-4438-ba5d-6d155e611bdd.png" height="30px"/></a></td> </tr> <tr> <td colspan="4" align="center"> <a href="https://github.com/sponsors/coreybutler"><img src="https://img.shields.io/github/sponsors/coreybutler?label=Individual%20Sponsors&logo=github&style=social"/></a> <a href="https://github.com/sponsors/coreybutler"><img src="https://img.shields.io/badge/-Become%20a%20Sponsor-yellow"/></a> </td> </tr> <tr> <td colspan="4" align="center"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/859b3d6a-883d-4f1e-8630-87b42cc35e3f.png" width="50"/><br/> <b>无法赞助?</b><br/>考虑<a href="https://stars.github.com/nominate/" target="_blank">提名@coreybutler获得Github之星</a>。 </td> </tr> </table> </div> <br/> <div align="center"><b>遇到问题?</b>请查看<a href="https://github.com/coreybutler/nvm-windows/wiki/Common-Issues">常见问题wiki</a>。</div> <br/> <table style="background-color:red;padding:6px;border-radius:3px;"> <tr><td> <h3>征求反馈:</h3> 我们正在开发<a href="https://github.com/coreybutler/nvm-windows/wiki/Runtime">Runtime (rt)</a>,这是NVM For Windows的后继版本。请花一分钟时间填写<a href="https://t.co/oGqQCM9FPx">此表单</a>来提供反馈。谢谢! <h3></h3> </td></tr> </table>在Windows计算机上管理多个node.js安装版本。
简而言之 类似于(但不完全相同)nvm,但适用于Windows。有安装程序。立即下载!
这一直是一个node版本管理器,而不是io.js管理器,因此不支持io.js。支持Node 4+版本。请记住,运行nvm install
或nvm use
时,Windows通常需要管理员权限(创建符号链接)。要安装最新版本的Node.js,请运行nvm install latest
。要安装最新的稳定版本,请运行nvm install lts
。
在某些情况下,能够在不同版本的Node.js之间切换非常有用。例如,如果你想用最新的开发版本测试正在开发的模块,而不卸载稳定版本的node,这个工具可以帮到你。
让NVM for Windows正常运行的最简单(推荐)方法是在安装NVM for Windows之前卸载任何先前的Node安装。这可以避免下面列出的所有陷阱。然而,如果你对Node安装进行了高度定制,你可能不希望完全删除它。NVM for Windows可以接管现有安装的管理,但这里面有一些细微差别(完全取决于运行安装的用户权限)。如果你有管理员账户,在卸载原始Node版本之前安装NVM for Windows是相对安全的。如果你在一个封闭环境中工作,比如由组策略控制安装/卸载的企业Active Directory环境,你真的应该考虑在安装NVM4W之前移除原始版本的Node。 权限问题 出于安全考虑,Windows 不允许一个供应商的应用程序"卸载"另一个供应商的应用程序。官方的 NVM4W 安装程序会尝试接管现有的 Node.js 安装,但它无法真正卸载原始的 Node.js 版本。为了解决这个问题,NVM for Windows 安装程序会尝试将原始 Node.js 安装文件复制到 NVM 根目录。这包括全局 npm 模块和配置。一旦这个过程完成,原始的 Node.js 安装就可以被卸载而不会丢失数据。
PATH 安装问题
如果你尝试将 NVM_SYMLINK
配置为使用现有目录(如 C:\Program Files\nodejs
),它将失败,因为符号链接无法覆盖物理目录。如果你选择不同的符号链接路径(如 C:\nvm\node
),则不会出现这个问题。
PATH 冲突
如果你没有卸载原始版本,运行 nvm use
可能看起来什么都没做。运行 node -v
总是会显示原始安装版本。这是由于同一应用程序多次安装时出现的 PATH
冲突。在 NVM4W 1.1.11+ 版本中,运行 nvm debug
以确定是否存在 PATH
冲突。
为简单起见,我们建议在使用 NVM for Windows 之前卸载任何现有的 Node.js 版本。删除可能残留的任何现有 Node.js 安装目录(如 %ProgramFiles%\nodejs
)。NVM 生成的符号链接不会覆盖现有的(即使是空的)安装目录。
:eyes: 备份任何全局 npmrc
配置 :eyes:
(如 %AppData%\npm\etc\npmrc
)
或者,将设置复制到用户配置 %UserProfile%\.npmrc
。删除现有的 npm 安装位置(如 %AppData%\npm
)以防止全局模块冲突。
使用最新安装程序(附带卸载程序)。或者,按照手动安装指南进行操作。
如果 NVM4W 在安装后似乎不能立即工作,请重启终端/powershell(不是整个电脑)。
安装后,需要为每个已安装的 node 版本重新安装全局工具(如 yarn):
nvm use 14.0.0
npm install -g yarn
nvm use 12.0.1
npm install -g yarn
:bulb: 从 v1.1.8 开始,有一个升级工具可以自动完成升级过程。
要升级 nvm-windows,运行新的安装程序。它会安全地覆盖需要更新的文件,而不会触及你的 node.js 安装。确保使用相同的安装和符号链接文件夹。如果你最初安装在默认位置,只需在每个窗口上点击"下一步"直到完成即可。
nvm-windows 在管理员 shell 中运行。你需要以管理员身份启动 powershell
或 命令提示符来使用 nvm-windows。
NVM for Windows 是一个命令行工具。只需在控制台中输入 nvm
即可获取帮助。基本命令有:
nvm arch [32|64]
:显示node是否在32位或64位模式下运行。指定32或64可覆盖默认架构。nvm debug
:检查NVM4W进程是否存在已知问题。nvm current
:显示当前激活的版本。nvm install <版本> [架构]
:版本可以是特定版本、"latest"表示最新当前版本,或"lts"表示最新LTS版本。可选择指定安装32位或64位版本(默认为系统架构)。将[架构]设为"all"可同时安装32位和64位版本。在命令末尾添加--insecure
可绕过远程下载服务器的SSL验证。nvm list [available]
:列出已安装的node.js版本。在末尾添加available
可显示可供下载的版本列表。nvm on
:启用node.js版本管理。nvm off
:禁用node.js版本管理(不会卸载任何内容)。nvm proxy [url]
:设置下载使用的代理。[url]留空可查看当前代理。将[url]设为"none"可移除代理。nvm uninstall <版本>
:卸载特定版本。nvm use <版本> [架构]
:切换使用指定版本。可选用latest
、lts
或newest
。newest
是最新安装的版本。可选指定32/64位架构。nvm use <架构>
将继续使用所选版本,但切换到32/64位模式。关于在特定目录使用use
(或使用.nvmrc
)的信息,请参考issue #16。nvm root <路径>
:设置nvm存储不同node.js版本的目录。如未设置<路径>
,将显示当前根目录。nvm version
:显示当前运行的NVM for Windows版本。nvm node_mirror <node镜像url>
:设置node镜像。中国用户可使用https://npmmirror.com/mirrors/node/nvm npm_mirror <npm镜像url>
:设置npm镜像。中国用户可使用https://npmmirror.com/mirrors/npm/请注意,您可能安装的任何全局npm模块在不同版本的node.js之间不共享。此外,某些npm模块可能不支持您正在使用的node版本,因此在工作时请注意您的环境。
用户报告使用防病毒软件时遇到一些问题,特别是McAfee。似乎防病毒软件正在操纵对VBScript引擎的访问。详情和解决方案请参见issue #133。
v1.1.8未进行代码签名,但所有其他版本均由Ecor Ventures LLC/Author.io签名。这应该有助于防止大多数防病毒软件的误报。
由于证书过期,v1.1.8+未进行代码签名(原因见发布说明)。v1.1.9已进行代码签名,感谢ajyong赞助了新证书。
简而言之: npm i -g yarn
详情请参见wiki。
go get github.com/blang/semver
go get github.com/olekukonko/tablewriter
build.bat
dist
目录中查看生成的安装程序。node.js有几个版本管理器。像nvm和n这样的工具只在Mac OSX和Linux上运行。Windows用户被遗忘了吗?不是的。nvmw和nodist都是为Windows设计的。那么,为什么要为Windows开发另一个版本管理器呢?
大多数Windows版node版本管理器的架构依赖于.bat
文件,这些文件使用一些巧妙的技巧来设置或模拟环境变量。有些使用node本身(一旦下载),这很值得赞赏,但容易出现问题。大约在node 0.10.30左右,安装结构稍有变化,导致其中一些无法与任何新版本一起工作。
此外,一些用户在安装这些模块时遇到困难,因为它需要对node的安装结构有更多了解。我认为,如果人们能更容易地在版本之间切换,他们可能会花时间在以前和未来的版本上测试他们的代码...这是一个良好的实践。
首先最重要的是,这个版本的nvm不依赖于node。它是用Go编写的,这是一种比在有限的.bat
文件上进行黑客攻击更结构化的方法。它不依赖于现有的node安装。Go提供了在同一代码库上创建Mac/Linux版本的能力。事实上,这项工作已经在进行中。
控制机制也有很大的不同。有两种常见的方法可以支持多节点安装并具有热切换功能。第一种是在切换版本时修改系统的PATH
,或者通过使用.bat
文件来模拟node可执行文件并相应地重定向。这种方法在我看来总是有点黑客式的,而且由于这种实现方式会产生一些怪异的问题。
第二种选择是使用符号链接。这个概念需要将符号链接放入系统的PATH
中,然后更新其目标到你想使用的node安装目录。这是一种直接的方法,似乎也是人们推荐的方法……直到他们意识到在Windows上创建符号链接有多麻烦。这就是为什么之前没有人这么做的原因。
为了创建/修改符号链接,你必须以管理员身份运行,并且必须绕过Windows UAC(那个烦人的提示)。幸运的是,这个挑战我已经在node-windows中用一些辅助脚本解决了。因此,Windows版NVM只在安装时在系统PATH
中维护一个单一的符号链接。切换到不同版本的node只是切换符号链接的目标。结果是,这个工具不要求你每次打开控制台窗口时都运行nvm use x.x.x
。当你_确实_运行nvm use x.x.x
时,node的活动版本会自动在所有打开的控制台窗口中更新。它还会在系统重启后保持,所以你只需要在想要做出改变时使用nvm。
Windows版NVM带有一个安装程序,这要归功于我在Fenix Web Server上工作的副产品。
总的来说,这个项目结合了一些想法,几个经过实战考验的其他模块的部分,以及对较新版本node的支持。
Windows版NVM使用Node项目提供的列表来识别"最新"版本。1.1.1+版本使用这个列表。在这个列表存在之前,我曾经抓取发布信息并将其作为独立的数据源提供。这个列表在1.1.0及之前的版本中使用,但现在已经废弃。
我需要它,就是这么简单。此外,很明显对多版本的支持不会出现在node核心中。这也是一个玩Go的借口。
我选择Go是因为它是跨平台的,感觉比Java的开销小,而且存在的时间比大多数人想象的要长。另外,我想尝试一下。有人问我为什么不用Node来写。用你试图安装的工具来写一个工具对我来说没有意义。因此,我对这个项目的要求很简单……选择一个不是Node的东西。Node将继续发展和变化。如果你需要提醒,请记住io.js、Ayo、4.x.x和6.x.x之间的所有破坏性变更,以及12+中向ES模块的转变。在软件世界中,变化是不可避免的。JavaScript是极其动态的。
感谢所有在Github内外提交问题、提出建议,以及普遍帮助改进这个项目的人。特别感谢
AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI小说写作助手,一站式润色、改写、扩写
蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用 户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可 以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、 编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多 种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号