在 MSYS2 上安装 nodejs 和 npm

Posted

技术标签:

【中文标题】在 MSYS2 上安装 nodejs 和 npm【英文标题】:Installing nodejs and npm on MSYS2 【发布时间】:2018-03-10 10:28:27 【问题描述】:

我的操作系统是win7,我用的是MSYS2(版本:MSYS_NT-6.1),请指教如何在这个终端上安装nodejs和npm,谢谢!

【问题讨论】:

【参考方案1】:

我找到了解决问题的方法,

64 位环境。

pacman -S mingw-w64-x86_64-nodejs

32 位环境。

pacman -S mingw-w64-i686-nodejs

安装后,打开终端

$ node -v
v6.11.0

【讨论】:

另外,npm 与 Node.js 一起分发,这意味着当您下载 Node.js 时,您会自动安装 npm。检查$ npm -v 对于那些想知道为什么node.exe不在msys2路径中的人,您需要使用适当的mingw控制台。 (32/64 位) nodejs 包在 msys 包中不可用 (packages.msys2.org/search?t=pkg&q=nodejs)【参考方案2】:

自 2020 年起,包mingw-w64-x86_64-nodejs 不再可用。在 Windows 机器上安装 Node.jsnpmgit 的最简单方法是使用官方 Windows 安装程序:

Git:https://git-scm.com/download/win Node.js(npm 附带):https://nodejs.org/en/download/

安装后,打开命令提示符(点击开始,然后输入cmd[ENTER])并验证所有三个工具都在那里:

git --version
node --version
npm --version

稍后,要更新 Node.js,只需从同一源重新安装即可。

【讨论】:

如果您使用其他终端,例如Windows Terminal,您必须在启动msys2_shell.cmd时添加-full-path选项。出于某种原因,msys2.org/docs/terminalsmsys2.org/docs/terminals 的官方文档中未建议使用 -full-path 选项 您是否为此使用了 Windows 安装程序?【参考方案3】:

我在这上面浪费了很多时间。我的解决方案是:

从 nodejs 站点 (https://nodejs.org/en/download/current/) 下载 Windows 二进制文件 (.zip) 解压到某个文件夹 将该文件夹添加到 PATH 环境变量

【讨论】:

使用此解决方案时,.npmrc 文件将在 C:\Users\tom 中生成,而不是在 msys2 shell 的 $HOME 中,如何解决?【参考方案4】:

确实可以使用 Windows 安装程序,并且 Node.js 在 C:\Program Files\nodejs\ 中提供了 npmnpx 的 bash 脚本版本以帮助简化流程。

但是,与 Cerclanism 的评论 @jmgonet 的回答相反,您应该--full-path 与 MinGW 一起使用,无论您使用什么终端,因为默认情况下这将带来 整个 进入 MinGW 环境的 Windows 路径。

(假设你是一个典型的 Windows 开发人员,使用 MSVC、Windows Python 等。在你的路径上安装目录,其中包含大量与 MinGW 路径成员冲突的名称,你可以看到它可能会在某些方面对你造成影响指路。我的完整 Windows CMD.exe %PATH% 是 1236 个字符!我不希望所有这些都被吸入 MinGW。)

相反,您应该将 nodejs 安装目录添加到您的 MinGW shell $PATH,例如使用大家最喜欢的 ~/.profile/~/.zprofile $PATH-munging 技巧:

# Append node.js to path
case $PATH in
  *"/c/program files/nodejs"*)
    ;;
  *)
    export PATH="$PATH:/c/program files/nodejs:"
    ;;
esac

您可能还需要设置一些配置,因为默认情况下,Windows npm 将使用 $APPDATA/npm 用于prefix$LOCALAPPDATA/npm-cache 用于cacheC:\Windows\system32\cmd.exe 用于shell,等等。

# To view the full config including all defaults and overrides
npm config ls -l
# To view the active config for the specified environment
npm config list -L global,user,project

也许我只是感到困惑,但对我来说似乎,从配置显示/说的内容来看,在我的用户配置中设置 prefix= 甚至会覆盖 本地安装。 (您npm install 没有--global 的项目特定的,直接进入当前目录的node_modules 子目录。)但是经过测试,很高兴我可以报告情况并非如此,因此覆盖内置@ 是安全的987654343@ 来自您的$HOME/.npmrc

您是否移动cache= 或让它留在C:\Users\<you>\AppData\Local\npm-cache\ 是您的决定。我相信它会工作那样。 (好吧,也许不是来自 MSYS shell,但来自 MinGW 应该没问题。)

我还没有克服一些细微的差异,但现在唯一想到的是:

    npm help <command> 打开 html 文档的浏览器窗口,而不是像在 Linux 上那样直接在终端中显示手册页内容。 (有道理,因为我认为这些手册页甚至都没有安装在 Windows 上。不过仍然令人不安。)

【讨论】:

以上是关于在 MSYS2 上安装 nodejs 和 npm的主要内容,如果未能解决你的问题,请参考以下文章

nodejs和npm的关系

nodejs和npm的关系

安装nodejs安装npm安装cpnm安装vue-cli脚手架

node.js怎么安装node modules

vue 安装webpack

npm