在 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.js、npm 和 git 的最简单方法是使用官方 Windows 安装程序:
安装后,打开命令提示符(点击开始,然后输入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\
中提供了 npm
和 npx
的 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
用于cache
,C:\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的主要内容,如果未能解决你的问题,请参考以下文章