在Windows上安装npm(Node.js包管理器)(不使用Node.js MSI)

56
问题:使用nvm安装Node.js时,我能够安装所需的Node.js版本,但nvm不会自动安装npm。NPM的页面没有提供关于安装它的任何信息。作为一个不怎么使用Windows的用户,我完全不知所措...每个谷歌搜索结果似乎都使用Node.js MSI安装程序来使其工作 - 这在我的情况下不是选项。那么,我该怎么做?

3
这是一个安装 Node.js 包管理器(npm)的脚本,可以在 Linux 或 macOS 上使用。运行此脚本将下载并安装 npm,以便您可以轻松地从命令行安装和管理 Node.js 模块。 - generalhenry
非常有可能,我记得几年前在cygwin中使用它来安装npm。 - generalhenry
11个回答

33

在Windows上安装npm,只需将npm 归档文件解压到node所在的位置。有关更多详细信息,请参见文档

npm随node一起提供,这就是您应该安装它的方式。nvm仅用于更改node版本,不会安装npm。使用npm和nvm的更干净的方法是首先按原样安装node(带有npm),然后通过npm install nvm安装nvm包。


请注意,NVM模块不再支持Windows操作系统。 - Jozzhart
这个答案很有帮助,尽管我和提问者不在同一个地方。我不小心卸载了npm(别问我为什么),无法安装任何东西(包括npm),而针对Linux / Unix操作系统的解决方案对于我在Windows上并不适用。 - Robert Dundon
@RobertDundon 你看过我的回答了吗? - LoganMzz
@user568109,要在Windows上安装npm,只需解压缩npm归档文件“where node is”,您的意思是在“C:\ Program Files \ nodejs”中吗? - Kavitha Velayutham

22

https://nodejs.org/download/。该页面提供Windows Installer (.msi)以及其他安装程序和二进制文件。请下载并安装Windows版本。

Node.js自带NPM。

NPM位于安装Node.js的目录中。


你需要将npm shell脚本转换为批处理脚本。 - Karl the Pagan
1
以下是有关编程的内容,请将其从英语翻译为中文。仅返回已翻译的文本:链接可能有助于更快地获取文件:https://nodejs.org/download/release/latest/ - Avatar

12

我使用了 @Eyuel 的方法:

  • https://nodejs.org/en/#download下载 nodejs msi 文件
  • 从 github 下载 npm zip 文件https://github.com/npm/npm
  • 使用 7 Zip 提取 msi 文件到 "node" 目录下
  • 设置 PATH 环境变量添加 "node" 目录
  • 将 npm zip 文件提取到一个不同的目录中(不能在 node 目录下)
  • CD 到 npm 目录并运行命令 node cli.js install npm -gf

现在你应该已经安装好 node + npm,可以使用以下命令进行检查: node --versionnpm --version

更新 27/07/2017: 我注意到最新版本的 node 8.2.1 和最新版本的 npm 与我回答时使用的版本有很大不同。这些版本的安装将无法正常工作。它可以与 node 6.11.1 和 npm 5.2.3 兼容。 另外,如果您正在使用代理连接互联网,请不要忘记:


对我也非常有效,谢谢。 - bretter

9

我也需要在Windows上安装npm,通过Chocolatey软件包管理器获得它。对于那些没有听说过的人,Chocolatey是Windows的软件包管理器,为您在Windows环境中提供了类似apt-get的便利。要获取它,请访问https://chocolatey.org/,其中有一个PowerShell脚本可供下载和安装。之后,您可以运行:

chocolatey install npm

你只需要这样就可以了。

请注意,独立的npm已不再更新,最后一个版本已知在Windows上存在问题。您可以考虑使用LessMSI从MSI中提取npm。


1
Chocolatey是一个很好的选择。感谢您让我发现它!但是我遇到了一些麻烦。如果其他人在使用这种方法时也遇到了一些问题(一旦你真正弄清楚如何运行它,它就可以完美无缺地运行),请查看我的详细运行过程 - Domi

8

首先在Windows命令提示符中定位到安装了Node(Node.js)的CD,然后按照以下步骤操作:

C:...\node> git config --system http.sslcainfo /bin/curl-ca-bundle.crt
C:...\node> git clone --recursive git://github.com/isaacs/npm.git
C:...\node> cd node=modules\npm
C:...\node=modules\npm> node cli.js install npm -gf

8
只需从http://nodejs.org/dist/下载"node.exe",选择您喜欢的"node.js"版本或获取最新版本。你也可以在"x64"子目录中获取64位版本。 然后,转到http://nodejs.org/dist/npm/检索您喜欢的"npm"版本的Zip档案(推荐使用:1.4.10)。将存档与"node.exe"一起提取。 最后,建议将"node.js"目录添加到PATH中以方便使用。 编辑:我建议使用npm install npm -g更新npm,因为nodejs.org提供的版本非常旧。 如果要保留原始的npm版本,请不要将npm与"node.exe"放在一起。只需创建一个目录并使用相同的带有"global"标志的命令,然后将.\node_modules\.bin\npm.cmd复制到新目录中:
mkdir c:\app\npm\_latest
cd c:\app\npm\_latest
<NPM_ORIGINAL_PATH>\npm install npm
cp node_modules\.bin\npm.cmd npm.cmd

最后修改您的PATH使用c:\app\npm\_latest


2
我最近编写了一个简单的应用程序,可以处理各种版本的node和npm管理。它允许您选择不同版本的node和npm进行下载,并选择要使用的版本。请查看并确定是否有用。 https://github.com/nhatkthanh/wnm

这并没有提供问题的答案。如果您想对作者进行批评或请求澄清,请在他们的帖子下留言。 - Bruce

1

下载最新的Node.js MSI(4.x或5.x)安装程序,并通过命令行运行以下内容:

msiexec /a node-v4.4.3-x64.msi /qb TARGETDIR="C:\Node.js"

这将把二进制文件提取到 C:\Node.js\nodejs 中。
然后您需要添加 C:\Node.js\nodejs PATH 环境变量。
要更新 NPM,请执行以下操作:
cd C:\Node.js\nodejs
npm install npm@latest

完成后,您应该能够检查版本:
node --version
npm --version

Node 的版本应该是 4.4.3+(任何你安装的版本),npm 的版本应该是 3.8.7+。


1
尝试前往“Window->Preferences->Nodeclipse”,取消选中“在PATH中查找节点”的框。然后确保下方的“Node.js路径”设置为node.exe文件的位置(对于我来说是C:\Program Files (x86)\nodejs\node.exe)。

1

TL;DR: 安装 Chocolatey, Node (和 NPM)

安装 Chocolatey

注意:你可能需要从 他们的安装页面 复制确切的命令,因为它可能会随时间而改变。

  1. 打开标准的 Windows 命令行
  2. @powershell -NoProfile -ExecutionPolicy unrestricted -Command "(iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))) >$null 2>&1" && SET PATH="%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
  3. 重新启动控制台
  4. 完成!

安装 Node (和 NPM)

  1. 由于Chocolatey安装的目录与MSI安装不同,因此请进入系统配置并删除以前的node安装(如果有)
  2. 按照上述说明安装Chocolatey
  3. choco install nodejs

    注意我使用了nodejs。 我甚至不确定node是什么,但是在其他系统中已经遇到过node被其他东西占用的麻烦,所以我认为nodejs会是更安全的选择

  4. 重新启动控制台
  5. 注意:node -v有效!
    • npm -v也有效!太棒了。

之后,我能够无问题地安装firebase-tools(之前我无法安装),所以一定是出了什么问题! :)

我第一次尝试的完整故事

"Chocolatey在几秒钟内安装"

如果你不在乎讽刺或者对工程师的悲叹,可以跳过下面的内容直接查看安装说明 TL;DR 部分。

对于其他人:我想修改 这个答案,该答案建议使用(目前似乎是最热门的Windows软件包管理解决方案)Chocolatey
它可以快速完成工作。然而,当我第一次尝试时,我花了一段时间才理解安装说明,因为它们有点复杂。安装说明大致如下(包括我在进行时的想法):
  • 注意:
  • 注意:
  • 注意:

    在了解基础知识之前就有三个大大的注意事项……这让我感到很焦虑……事情会出多大的错呢!?

  • 使用受限TLS进行安装

    甚至不确定TLS是什么……哦,它是SSL的好朋友——这不应该成为默认设置并且可以直接使用吗?我的浏览器可以做到HTTPS,没问题!(开玩笑的……我知道SSLTSL经常在需要高安全性的环境中引起很多问题)

  • 选项1
  • 选项2

    额……太棒了……我不能直接安装吗?

  • 在代理后面安装?

    只是……不行……

  • 要求

    噢,天啊……

  • 为什么Chocolatey默认安装在哪里?

    真的?!

  • 安装之前

    sad
    (来源:clipartbest.com)

  • 我可以使用代理安装吗?

    又是代理……

  • 我可以安装特定版本的Chocolatey吗?

    只要有任何版本就好了,谢谢……

  • 我可以使用Windows内置压缩而不是下载7zip吗?

    7zip?你为什么要提到这个?!

  • 非管理员安装
  • 听起来很棒!

    • "注意:这个选项应该是最后的手段,并且被认为是高级场景。"
      • 该死。

  • 替代安装选项

    兴奋

  • 命令行
    • "这确实是最简单的方法,因为在执行之前不需要配置PowerShell。"

      就是这样!

虽然我非常赞赏广泛讨论了问题和可能的解决方案,但也许重新组织它们,将“Chocolatey在几秒钟内安装”承诺付诸实践,通过将“最简单的方法”放在第一位,会更加出色!

答案很主观,试图毫无明显理由地贬低Chocolatey。每个平台都倾向于特定的软件安装方式,并使非标准方式更加困难(要困难得多)。在Windows上,.exe或.msi是用户友好的安装方式已经有很长时间了。通过PowerShell进行包管理安装对于Windows来说不太正确。说实话,我在一分钟之内就安装了Chocolatey,包括“那些在代理后面的人”的提示。在抱怨之前,请仔细比较这两个链接:http://docs.nativescript.org/angular/start/ns-setup-win和http://docs.nativescript.org/angular/start/ns-setup-os-x。 - zmechanic
@zmechanic,我不认为我试图“诋毁”Chocolatey。它是一个很棒的工具!但感谢您的反馈。我让它更清晰了,我实际上喜欢Chocolatey,并且它确实完成了工作(尽管我在哀叹)。 - Domi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接